TPTP Problem File: DAT223^1.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : DAT223^1 : TPTP v8.2.0. Released v7.0.0.
% Domain   : Data Structures
% Problem  : Tllist 459
% Version  : [Bla16] axioms : Especial.
% English  :

% Refs     : [Loc10] Lochbihler (2010), Coinductive
%          : [RB15]  Reynolds & Blanchette (2015), A Decision Procedure for
%          : [Bla16] Blanchette (2016), Email to Geoff Sutcliffe
% Source   : [Bla16]
% Names    : tllist__459.p [Bla16]

% Status   : Theorem
% Rating   : 1.00 v7.1.0
% Syntax   : Number of formulae    :  333 ( 149 unt;  72 typ;   0 def)
%            Number of atoms       :  802 ( 398 equ;   0 cnn)
%            Maximal formula atoms :   17 (   3 avg)
%            Number of connectives : 7508 (  37   ~;   3   |;  72   &;7219   @)
%                                         (   0 <=>; 177  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   28 (  10 avg)
%            Number of types       :    6 (   5 usr)
%            Number of type conns  : 1225 (1225   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   70 (  67 usr;   4 con; 0-10 aty)
%            Number of variables   : 1955 ( 472   ^;1349   !;  16   ?;1955   :)
%                                         ( 118  !>;   0  ?*;   0  @-;   0  @+)
% SPC      : TH1_THM_EQU_NAR

% Comments : This file was generated by Isabelle (most likely Sledgehammer)
%            2016-07-13 14:52:16.590
%------------------------------------------------------------------------------
%----Could-be-implicit typings (10)
thf(ty_t_TLList__Mirabelle__qhjoikztpd_Otllist,type,
    tLList446370796tllist: $tType > $tType > $tType ).

thf(ty_t_Coinductive__List_Ollist,type,
    coinductive_llist: $tType > $tType ).

thf(ty_t_Product__Type_Ounit,type,
    product_unit: $tType ).

thf(ty_t_Product__Type_Oprod,type,
    product_prod: $tType > $tType > $tType ).

thf(ty_t_Set_Oset,type,
    set: $tType > $tType ).

thf(ty_t_Nat_Onat,type,
    nat: $tType ).

thf(ty_t_itself,type,
    itself: $tType > $tType ).

thf(ty_tf_c,type,
    c: $tType ).

thf(ty_tf_b,type,
    b: $tType ).

thf(ty_tf_a,type,
    a: $tType ).

%----Explicit typings (62)
thf(sy_c_BNF__Def_Orel__fun,type,
    bNF_rel_fun: 
      !>[A: $tType,C: $tType,B: $tType,D: $tType] : ( ( A > C > $o ) > ( B > D > $o ) > ( A > B ) > ( C > D ) > $o ) ).

thf(sy_c_Coinductive__List_Olappend,type,
    coinductive_lappend: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) ).

thf(sy_c_Coinductive__List_Olconcat,type,
    coinductive_lconcat: 
      !>[A: $tType] : ( ( coinductive_llist @ ( coinductive_llist @ A ) ) > ( coinductive_llist @ A ) ) ).

thf(sy_c_Coinductive__List_OldropWhile,type,
    coindu218763757pWhile: 
      !>[A: $tType] : ( ( A > $o ) > ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) ).

thf(sy_c_Coinductive__List_Oldropn,type,
    coinductive_ldropn: 
      !>[A: $tType] : ( nat > ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) ).

thf(sy_c_Coinductive__List_Olfilter,type,
    coinductive_lfilter: 
      !>[A: $tType] : ( ( A > $o ) > ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) ).

thf(sy_c_Coinductive__List_Olfinite,type,
    coinductive_lfinite: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > $o ) ).

thf(sy_c_Coinductive__List_Ollast,type,
    coinductive_llast: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > A ) ).

thf(sy_c_Coinductive__List_Ollist_OLCons,type,
    coinductive_LCons: 
      !>[A: $tType] : ( A > ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) ).

thf(sy_c_Coinductive__List_Ollist_Ocorec__llist,type,
    coindu1259883913_llist: 
      !>[C: $tType,A: $tType] : ( ( C > $o ) > ( C > A ) > ( C > $o ) > ( C > ( coinductive_llist @ A ) ) > ( C > C ) > C > ( coinductive_llist @ A ) ) ).

thf(sy_c_Coinductive__List_Ollist_Ollist__all2,type,
    coindu1486289336t_all2: 
      !>[A: $tType,B: $tType] : ( ( A > B > $o ) > ( coinductive_llist @ A ) > ( coinductive_llist @ B ) > $o ) ).

thf(sy_c_Coinductive__List_Ounfold__llist,type,
    coindu1441602521_llist: 
      !>[A: $tType,B: $tType] : ( ( A > $o ) > ( A > B ) > ( A > A ) > A > ( coinductive_llist @ B ) ) ).

thf(sy_c_Fun_Ocomp,type,
    comp: 
      !>[B: $tType,C: $tType,A: $tType] : ( ( B > C ) > ( A > B ) > A > C ) ).

thf(sy_c_Fun_Oid,type,
    id: 
      !>[A: $tType] : ( A > A ) ).

thf(sy_c_Fun_Omap__fun,type,
    map_fun: 
      !>[C: $tType,A: $tType,B: $tType,D: $tType] : ( ( C > A ) > ( B > D ) > ( A > B ) > C > D ) ).

thf(sy_c_Fun__Def_Oreduction__pair,type,
    fun_reduction_pair: 
      !>[A: $tType] : ( ( product_prod @ ( set @ ( product_prod @ A @ A ) ) @ ( set @ ( product_prod @ A @ A ) ) ) > $o ) ).

thf(sy_c_Fun__Def_Orp__inv__image,type,
    fun_rp_inv_image: 
      !>[A: $tType,B: $tType] : ( ( product_prod @ ( set @ ( product_prod @ A @ A ) ) @ ( set @ ( product_prod @ A @ A ) ) ) > ( B > A ) > ( product_prod @ ( set @ ( product_prod @ B @ B ) ) @ ( set @ ( product_prod @ B @ B ) ) ) ) ).

thf(sy_c_HOL_OThe,type,
    the: 
      !>[A: $tType] : ( ( A > $o ) > A ) ).

thf(sy_c_HOL_Oundefined,type,
    undefined: 
      !>[A: $tType] : A ).

thf(sy_c_If,type,
    if: 
      !>[A: $tType] : ( $o > A > A > A ) ).

thf(sy_c_Lifting_OQuotient,type,
    quotient: 
      !>[A: $tType,B: $tType] : ( ( A > A > $o ) > ( A > B ) > ( B > A ) > ( A > B > $o ) > $o ) ).

thf(sy_c_Product__Type_OPair,type,
    product_Pair: 
      !>[A: $tType,B: $tType] : ( A > B > ( product_prod @ A @ B ) ) ).

thf(sy_c_Product__Type_Oapfst,type,
    product_apfst: 
      !>[A: $tType,C: $tType,B: $tType] : ( ( A > C ) > ( product_prod @ A @ B ) > ( product_prod @ C @ B ) ) ).

thf(sy_c_Product__Type_Oapsnd,type,
    product_apsnd: 
      !>[B: $tType,C: $tType,A: $tType] : ( ( B > C ) > ( product_prod @ A @ B ) > ( product_prod @ A @ C ) ) ).

thf(sy_c_Product__Type_Ointernal__case__prod,type,
    produc2004651681e_prod: 
      !>[A: $tType,B: $tType,C: $tType] : ( ( A > B > C ) > ( product_prod @ A @ B ) > C ) ).

thf(sy_c_Product__Type_Oold_Obool_Orec__bool,type,
    product_rec_bool: 
      !>[T: $tType] : ( T > T > $o > T ) ).

thf(sy_c_Product__Type_Oold_Obool_Orec__set__bool,type,
    product_rec_set_bool: 
      !>[T: $tType] : ( T > T > $o > T > $o ) ).

thf(sy_c_Product__Type_Oold_Oprod_Orec__prod,type,
    product_rec_prod: 
      !>[A: $tType,B: $tType,T: $tType] : ( ( A > B > T ) > ( product_prod @ A @ B ) > T ) ).

thf(sy_c_Product__Type_Oold_Oprod_Orec__set__prod,type,
    product_rec_set_prod: 
      !>[A: $tType,B: $tType,T: $tType] : ( ( A > B > T ) > ( product_prod @ A @ B ) > T > $o ) ).

thf(sy_c_Product__Type_Oold_Ounit_Orec__set__unit,type,
    product_rec_set_unit: 
      !>[T: $tType] : ( T > product_unit > T > $o ) ).

thf(sy_c_Product__Type_Oold_Ounit_Orec__unit,type,
    product_rec_unit: 
      !>[T: $tType] : ( T > product_unit > T ) ).

thf(sy_c_Product__Type_Oprod_Ocase__prod,type,
    product_case_prod: 
      !>[A: $tType,B: $tType,C: $tType] : ( ( A > B > C ) > ( product_prod @ A @ B ) > C ) ).

thf(sy_c_Product__Type_Oprod_Oswap,type,
    product_swap: 
      !>[A: $tType,B: $tType] : ( ( product_prod @ A @ B ) > ( product_prod @ B @ A ) ) ).

thf(sy_c_Pure_Otype,type,
    type: 
      !>[A: $tType] : ( itself @ A ) ).

thf(sy_c_Relation_Oinv__image,type,
    inv_image: 
      !>[B: $tType,A: $tType] : ( ( set @ ( product_prod @ B @ B ) ) > ( A > B ) > ( set @ ( product_prod @ A @ A ) ) ) ).

thf(sy_c_Relation_Oinv__imagep,type,
    inv_imagep: 
      !>[B: $tType,A: $tType] : ( ( B > B > $o ) > ( A > B ) > A > A > $o ) ).

thf(sy_c_Relation_Oreflp,type,
    reflp: 
      !>[A: $tType] : ( ( A > A > $o ) > $o ) ).

thf(sy_c_Set_OCollect,type,
    collect: 
      !>[A: $tType] : ( ( A > $o ) > ( set @ A ) ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Ocr__tllist,type,
    tLList47617868tllist: 
      !>[A: $tType,B: $tType] : ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > ( tLList446370796tllist @ A @ B ) > $o ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Olappendt,type,
    tLList98099029ppendt: 
      !>[A: $tType,B: $tType] : ( ( coinductive_llist @ A ) > ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ A @ B ) ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Ollist__of__tllist,type,
    tLList798109904tllist: 
      !>[A: $tType,B: $tType] : ( ( tLList446370796tllist @ A @ B ) > ( coinductive_llist @ A ) ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Opcr__tllist,type,
    tLList1832236142tllist: 
      !>[C: $tType,A: $tType,D: $tType,B: $tType] : ( ( C > A > $o ) > ( D > B > $o ) > ( product_prod @ ( coinductive_llist @ C ) @ D ) > ( tLList446370796tllist @ A @ B ) > $o ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otappend,type,
    tLList192138471append: 
      !>[A: $tType,B: $tType,C: $tType] : ( ( tLList446370796tllist @ A @ B ) > ( B > ( tLList446370796tllist @ A @ C ) ) > ( tLList446370796tllist @ A @ C ) ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otconcat,type,
    tLList365522113concat: 
      !>[B: $tType,A: $tType] : ( B > ( tLList446370796tllist @ ( coinductive_llist @ A ) @ B ) > ( tLList446370796tllist @ A @ B ) ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otdropn,type,
    tLList1881248882tdropn: 
      !>[A: $tType,B: $tType] : ( nat > ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ A @ B ) ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Oterminal0,type,
    tLList1825092077minal0: 
      !>[A: $tType] : A ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otfilter,type,
    tLList1813626245filter: 
      !>[B: $tType,A: $tType] : ( B > ( A > $o ) > ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ A @ B ) ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist_OTCons,type,
    tLList1992840728_TCons: 
      !>[A: $tType,B: $tType] : ( A > ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ A @ B ) ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist_Ocase__tllist,type,
    tLList200813139tllist: 
      !>[B: $tType,C: $tType,A: $tType] : ( ( B > C ) > ( A > ( tLList446370796tllist @ A @ B ) > C ) > ( tLList446370796tllist @ A @ B ) > C ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist_Ocorec__tllist,type,
    tLList1614408749tllist: 
      !>[E: $tType,B: $tType,A: $tType] : ( ( E > $o ) > ( E > B ) > ( E > A ) > ( E > $o ) > ( E > ( tLList446370796tllist @ A @ B ) ) > ( E > E ) > E > ( tLList446370796tllist @ A @ B ) ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist_Opred__tllist,type,
    tLList11265572tllist: 
      !>[A: $tType,B: $tType] : ( ( A > $o ) > ( B > $o ) > ( tLList446370796tllist @ A @ B ) > $o ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist_Oterminal,type,
    tLList2110128105rminal: 
      !>[A: $tType,B: $tType] : ( ( tLList446370796tllist @ A @ B ) > B ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist_Otllist__all2,type,
    tLList1380991092t_all2: 
      !>[A: $tType,C: $tType,B: $tType,D: $tType] : ( ( A > C > $o ) > ( B > D > $o ) > ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ C @ D ) > $o ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist_Otmap,type,
    tLList1669959861e_tmap: 
      !>[A: $tType,Aa: $tType,B: $tType,Ba: $tType] : ( ( A > Aa ) > ( B > Ba ) > ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ Aa @ Ba ) ) ).

thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist__of__llist,type,
    tLList1672613558_llist: 
      !>[B: $tType,A: $tType] : ( B > ( coinductive_llist @ A ) > ( tLList446370796tllist @ A @ B ) ) ).

thf(sy_c_Wellfounded_Olex__prod,type,
    lex_prod: 
      !>[A: $tType,B: $tType] : ( ( set @ ( product_prod @ A @ A ) ) > ( set @ ( product_prod @ B @ B ) ) > ( set @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) ) ) ) ).

thf(sy_c_Wfrec_Oadm__wf,type,
    adm_wf: 
      !>[A: $tType,B: $tType] : ( ( set @ ( product_prod @ A @ A ) ) > ( ( A > B ) > A > B ) > $o ) ).

thf(sy_c_Wfrec_Ocut,type,
    cut: 
      !>[A: $tType,B: $tType] : ( ( A > B ) > ( set @ ( product_prod @ A @ A ) ) > A > A > B ) ).

thf(sy_c_Wfrec_Osame__fst,type,
    same_fst: 
      !>[A: $tType,B: $tType] : ( ( A > $o ) > ( A > ( set @ ( product_prod @ B @ B ) ) ) > ( set @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) ) ) ) ).

thf(sy_c_member,type,
    member: 
      !>[A: $tType] : ( A > ( set @ A ) > $o ) ).

thf(sy_v_prod1,type,
    prod1: product_prod @ ( coinductive_llist @ a ) @ b ).

thf(sy_v_prod2,type,
    prod2: product_prod @ ( coinductive_llist @ a ) @ b ).

%----Relevant facts (256)
thf(fact_0_case__prodI2_H,axiom,
    ! [A: $tType,B: $tType,C: $tType,P: product_prod @ A @ B,C2: A > B > C > $o,X: C] :
      ( ! [A2: A,B2: B] :
          ( ( ( product_Pair @ A @ B @ A2 @ B2 )
            = P )
         => ( C2 @ A2 @ B2 @ X ) )
     => ( product_case_prod @ A @ B @ ( C > $o ) @ C2 @ P @ X ) ) ).

% case_prodI2'
thf(fact_1_case__prodI,axiom,
    ! [A: $tType,B: $tType,F: A > B > $o,A3: A,B3: B] :
      ( ( F @ A3 @ B3 )
     => ( product_case_prod @ A @ B @ $o @ F @ ( product_Pair @ A @ B @ A3 @ B3 ) ) ) ).

% case_prodI
thf(fact_2_case__prodI2,axiom,
    ! [B: $tType,A: $tType,P: product_prod @ A @ B,C2: A > B > $o] :
      ( ! [A2: A,B2: B] :
          ( ( P
            = ( product_Pair @ A @ B @ A2 @ B2 ) )
         => ( C2 @ A2 @ B2 ) )
     => ( product_case_prod @ A @ B @ $o @ C2 @ P ) ) ).

% case_prodI2
thf(fact_3_case__prod__conv,axiom,
    ! [B: $tType,A: $tType,C: $tType,F: B > C > A,A3: B,B3: C] :
      ( ( product_case_prod @ B @ C @ A @ F @ ( product_Pair @ B @ C @ A3 @ B3 ) )
      = ( F @ A3 @ B3 ) ) ).

% case_prod_conv
thf(fact_4_split__part,axiom,
    ! [B: $tType,A: $tType,P2: $o,Q: A > B > $o] :
      ( ( product_case_prod @ A @ B @ $o
        @ ^ [A4: A,B4: B] :
            ( P2
            & ( Q @ A4 @ B4 ) ) )
      = ( ^ [Ab: product_prod @ A @ B] :
            ( P2
            & ( product_case_prod @ A @ B @ $o @ Q @ Ab ) ) ) ) ).

% split_part
thf(fact_5_case__prodD_H,axiom,
    ! [B: $tType,A: $tType,C: $tType,R: A > B > C > $o,A3: A,B3: B,C2: C] :
      ( ( product_case_prod @ A @ B @ ( C > $o ) @ R @ ( product_Pair @ A @ B @ A3 @ B3 ) @ C2 )
     => ( R @ A3 @ B3 @ C2 ) ) ).

% case_prodD'
thf(fact_6_case__prodE_H,axiom,
    ! [B: $tType,A: $tType,C: $tType,C2: A > B > C > $o,P: product_prod @ A @ B,Z: C] :
      ( ( product_case_prod @ A @ B @ ( C > $o ) @ C2 @ P @ Z )
     => ~ ! [X2: A,Y: B] :
            ( ( P
              = ( product_Pair @ A @ B @ X2 @ Y ) )
           => ~ ( C2 @ X2 @ Y @ Z ) ) ) ).

% case_prodE'
thf(fact_7_case__prod__Pair__iden,axiom,
    ! [B: $tType,A: $tType,P: product_prod @ A @ B] :
      ( ( product_case_prod @ A @ B @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B ) @ P )
      = P ) ).

% case_prod_Pair_iden
thf(fact_8_prod_Oinject,axiom,
    ! [A: $tType,B: $tType,X1: A,X22: B,Y1: A,Y2: B] :
      ( ( ( product_Pair @ A @ B @ X1 @ X22 )
        = ( product_Pair @ A @ B @ Y1 @ Y2 ) )
      = ( ( X1 = Y1 )
        & ( X22 = Y2 ) ) ) ).

% prod.inject
thf(fact_9_old_Oprod_Oinject,axiom,
    ! [A: $tType,B: $tType,A3: A,B3: B,A5: A,B5: B] :
      ( ( ( product_Pair @ A @ B @ A3 @ B3 )
        = ( product_Pair @ A @ B @ A5 @ B5 ) )
      = ( ( A3 = A5 )
        & ( B3 = B5 ) ) ) ).

% old.prod.inject
thf(fact_10_case__prodD,axiom,
    ! [A: $tType,B: $tType,F: A > B > $o,A3: A,B3: B] :
      ( ( product_case_prod @ A @ B @ $o @ F @ ( product_Pair @ A @ B @ A3 @ B3 ) )
     => ( F @ A3 @ B3 ) ) ).

% case_prodD
thf(fact_11_case__prodE,axiom,
    ! [A: $tType,B: $tType,C2: A > B > $o,P: product_prod @ A @ B] :
      ( ( product_case_prod @ A @ B @ $o @ C2 @ P )
     => ~ ! [X2: A,Y: B] :
            ( ( P
              = ( product_Pair @ A @ B @ X2 @ Y ) )
           => ~ ( C2 @ X2 @ Y ) ) ) ).

% case_prodE
thf(fact_12_mem__case__prodI2,axiom,
    ! [C: $tType,B: $tType,A: $tType,P: product_prod @ A @ B,Z: C,C2: A > B > ( set @ C )] :
      ( ! [A2: A,B2: B] :
          ( ( P
            = ( product_Pair @ A @ B @ A2 @ B2 ) )
         => ( member @ C @ Z @ ( C2 @ A2 @ B2 ) ) )
     => ( member @ C @ Z @ ( product_case_prod @ A @ B @ ( set @ C ) @ C2 @ P ) ) ) ).

% mem_case_prodI2
thf(fact_13_mem__case__prodI,axiom,
    ! [A: $tType,B: $tType,C: $tType,Z: A,C2: B > C > ( set @ A ),A3: B,B3: C] :
      ( ( member @ A @ Z @ ( C2 @ A3 @ B3 ) )
     => ( member @ A @ Z @ ( product_case_prod @ B @ C @ ( set @ A ) @ C2 @ ( product_Pair @ B @ C @ A3 @ B3 ) ) ) ) ).

% mem_case_prodI
thf(fact_14_mem__case__prodE,axiom,
    ! [B: $tType,A: $tType,C: $tType,Z: A,C2: B > C > ( set @ A ),P: product_prod @ B @ C] :
      ( ( member @ A @ Z @ ( product_case_prod @ B @ C @ ( set @ A ) @ C2 @ P ) )
     => ~ ! [X2: B,Y: C] :
            ( ( P
              = ( product_Pair @ B @ C @ X2 @ Y ) )
           => ~ ( member @ A @ Z @ ( C2 @ X2 @ Y ) ) ) ) ).

% mem_case_prodE
thf(fact_15_old_Oprod_Oinducts,axiom,
    ! [B: $tType,A: $tType,P2: ( product_prod @ A @ B ) > $o,Prod: product_prod @ A @ B] :
      ( ! [A2: A,B2: B] : ( P2 @ ( product_Pair @ A @ B @ A2 @ B2 ) )
     => ( P2 @ Prod ) ) ).

% old.prod.inducts
thf(fact_16_old_Oprod_Oexhaust,axiom,
    ! [A: $tType,B: $tType,Y3: product_prod @ A @ B] :
      ~ ! [A2: A,B2: B] :
          ( Y3
         != ( product_Pair @ A @ B @ A2 @ B2 ) ) ).

% old.prod.exhaust
thf(fact_17_prod__induct7,axiom,
    ! [G: $tType,F2: $tType,E: $tType,D: $tType,C: $tType,B: $tType,A: $tType,P2: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F2 @ G ) ) ) ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F2 @ G ) ) ) ) )] :
      ( ! [A2: A,B2: B,C3: C,D2: D,E2: E,F3: F2,G2: G] : ( P2 @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F2 @ G ) ) ) ) ) @ A2 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F2 @ G ) ) ) ) @ B2 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F2 @ G ) ) ) @ C3 @ ( product_Pair @ D @ ( product_prod @ E @ ( product_prod @ F2 @ G ) ) @ D2 @ ( product_Pair @ E @ ( product_prod @ F2 @ G ) @ E2 @ ( product_Pair @ F2 @ G @ F3 @ G2 ) ) ) ) ) ) )
     => ( P2 @ X ) ) ).

% prod_induct7
thf(fact_18_prod__induct6,axiom,
    ! [F2: $tType,E: $tType,D: $tType,C: $tType,B: $tType,A: $tType,P2: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F2 ) ) ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F2 ) ) ) )] :
      ( ! [A2: A,B2: B,C3: C,D2: D,E2: E,F3: F2] : ( P2 @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F2 ) ) ) ) @ A2 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F2 ) ) ) @ B2 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E @ F2 ) ) @ C3 @ ( product_Pair @ D @ ( product_prod @ E @ F2 ) @ D2 @ ( product_Pair @ E @ F2 @ E2 @ F3 ) ) ) ) ) )
     => ( P2 @ X ) ) ).

% prod_induct6
thf(fact_19_prod__induct5,axiom,
    ! [E: $tType,D: $tType,C: $tType,B: $tType,A: $tType,P2: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) )] :
      ( ! [A2: A,B2: B,C3: C,D2: D,E2: E] : ( P2 @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) ) @ A2 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) @ B2 @ ( product_Pair @ C @ ( product_prod @ D @ E ) @ C3 @ ( product_Pair @ D @ E @ D2 @ E2 ) ) ) ) )
     => ( P2 @ X ) ) ).

% prod_induct5
thf(fact_20_prod__induct4,axiom,
    ! [D: $tType,C: $tType,B: $tType,A: $tType,P2: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) )] :
      ( ! [A2: A,B2: B,C3: C,D2: D] : ( P2 @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) ) @ A2 @ ( product_Pair @ B @ ( product_prod @ C @ D ) @ B2 @ ( product_Pair @ C @ D @ C3 @ D2 ) ) ) )
     => ( P2 @ X ) ) ).

% prod_induct4
thf(fact_21_prod__induct3,axiom,
    ! [C: $tType,B: $tType,A: $tType,P2: ( product_prod @ A @ ( product_prod @ B @ C ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ C )] :
      ( ! [A2: A,B2: B,C3: C] : ( P2 @ ( product_Pair @ A @ ( product_prod @ B @ C ) @ A2 @ ( product_Pair @ B @ C @ B2 @ C3 ) ) )
     => ( P2 @ X ) ) ).

% prod_induct3
thf(fact_22_prod__cases7,axiom,
    ! [A: $tType,B: $tType,C: $tType,D: $tType,E: $tType,F2: $tType,G: $tType,Y3: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F2 @ G ) ) ) ) )] :
      ~ ! [A2: A,B2: B,C3: C,D2: D,E2: E,F3: F2,G2: G] :
          ( Y3
         != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F2 @ G ) ) ) ) ) @ A2 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F2 @ G ) ) ) ) @ B2 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F2 @ G ) ) ) @ C3 @ ( product_Pair @ D @ ( product_prod @ E @ ( product_prod @ F2 @ G ) ) @ D2 @ ( product_Pair @ E @ ( product_prod @ F2 @ G ) @ E2 @ ( product_Pair @ F2 @ G @ F3 @ G2 ) ) ) ) ) ) ) ).

% prod_cases7
thf(fact_23_prod__cases6,axiom,
    ! [A: $tType,B: $tType,C: $tType,D: $tType,E: $tType,F2: $tType,Y3: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F2 ) ) ) )] :
      ~ ! [A2: A,B2: B,C3: C,D2: D,E2: E,F3: F2] :
          ( Y3
         != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F2 ) ) ) ) @ A2 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F2 ) ) ) @ B2 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E @ F2 ) ) @ C3 @ ( product_Pair @ D @ ( product_prod @ E @ F2 ) @ D2 @ ( product_Pair @ E @ F2 @ E2 @ F3 ) ) ) ) ) ) ).

% prod_cases6
thf(fact_24_prod__cases5,axiom,
    ! [A: $tType,B: $tType,C: $tType,D: $tType,E: $tType,Y3: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) )] :
      ~ ! [A2: A,B2: B,C3: C,D2: D,E2: E] :
          ( Y3
         != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) ) @ A2 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) @ B2 @ ( product_Pair @ C @ ( product_prod @ D @ E ) @ C3 @ ( product_Pair @ D @ E @ D2 @ E2 ) ) ) ) ) ).

% prod_cases5
thf(fact_25_prod__cases4,axiom,
    ! [A: $tType,B: $tType,C: $tType,D: $tType,Y3: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) )] :
      ~ ! [A2: A,B2: B,C3: C,D2: D] :
          ( Y3
         != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) ) @ A2 @ ( product_Pair @ B @ ( product_prod @ C @ D ) @ B2 @ ( product_Pair @ C @ D @ C3 @ D2 ) ) ) ) ).

% prod_cases4
thf(fact_26_prod__cases3,axiom,
    ! [A: $tType,B: $tType,C: $tType,Y3: product_prod @ A @ ( product_prod @ B @ C )] :
      ~ ! [A2: A,B2: B,C3: C] :
          ( Y3
         != ( product_Pair @ A @ ( product_prod @ B @ C ) @ A2 @ ( product_Pair @ B @ C @ B2 @ C3 ) ) ) ).

% prod_cases3
thf(fact_27_Pair__inject,axiom,
    ! [A: $tType,B: $tType,A3: A,B3: B,A5: A,B5: B] :
      ( ( ( product_Pair @ A @ B @ A3 @ B3 )
        = ( product_Pair @ A @ B @ A5 @ B5 ) )
     => ~ ( ( A3 = A5 )
         => ( B3 != B5 ) ) ) ).

% Pair_inject
thf(fact_28_prod__cases,axiom,
    ! [B: $tType,A: $tType,P2: ( product_prod @ A @ B ) > $o,P: product_prod @ A @ B] :
      ( ! [A2: A,B2: B] : ( P2 @ ( product_Pair @ A @ B @ A2 @ B2 ) )
     => ( P2 @ P ) ) ).

% prod_cases
thf(fact_29_surj__pair,axiom,
    ! [A: $tType,B: $tType,P: product_prod @ A @ B] :
    ? [X2: A,Y: B] :
      ( P
      = ( product_Pair @ A @ B @ X2 @ Y ) ) ).

% surj_pair
thf(fact_30_prod_Ocase__distrib,axiom,
    ! [C: $tType,D: $tType,B: $tType,A: $tType,H: C > D,F: A > B > C,Prod: product_prod @ A @ B] :
      ( ( H @ ( product_case_prod @ A @ B @ C @ F @ Prod ) )
      = ( product_case_prod @ A @ B @ D
        @ ^ [X12: A,X23: B] : ( H @ ( F @ X12 @ X23 ) )
        @ Prod ) ) ).

% prod.case_distrib
thf(fact_31_prod_Odisc__eq__case,axiom,
    ! [B: $tType,A: $tType,Prod: product_prod @ A @ B] :
      ( product_case_prod @ A @ B @ $o
      @ ^ [Uu: A,Uv: B] : $true
      @ Prod ) ).

% prod.disc_eq_case
thf(fact_32_old_Oprod_Ocase,axiom,
    ! [A: $tType,C: $tType,B: $tType,F: A > B > C,X1: A,X22: B] :
      ( ( product_case_prod @ A @ B @ C @ F @ ( product_Pair @ A @ B @ X1 @ X22 ) )
      = ( F @ X1 @ X22 ) ) ).

% old.prod.case
thf(fact_33_cond__case__prod__eta,axiom,
    ! [C: $tType,B: $tType,A: $tType,F: A > B > C,G3: ( product_prod @ A @ B ) > C] :
      ( ! [X2: A,Y: B] :
          ( ( F @ X2 @ Y )
          = ( G3 @ ( product_Pair @ A @ B @ X2 @ Y ) ) )
     => ( ( product_case_prod @ A @ B @ C @ F )
        = G3 ) ) ).

% cond_case_prod_eta
thf(fact_34_case__prod__eta,axiom,
    ! [C: $tType,B: $tType,A: $tType,F: ( product_prod @ A @ B ) > C] :
      ( ( product_case_prod @ A @ B @ C
        @ ^ [X3: A,Y4: B] : ( F @ ( product_Pair @ A @ B @ X3 @ Y4 ) ) )
      = F ) ).

% case_prod_eta
thf(fact_35_case__prodE2,axiom,
    ! [B: $tType,A: $tType,C: $tType,Q: A > $o,P2: B > C > A,Z: product_prod @ B @ C] :
      ( ( Q @ ( product_case_prod @ B @ C @ A @ P2 @ Z ) )
     => ~ ! [X2: B,Y: C] :
            ( ( Z
              = ( product_Pair @ B @ C @ X2 @ Y ) )
           => ~ ( Q @ ( P2 @ X2 @ Y ) ) ) ) ).

% case_prodE2
thf(fact_36_case__prod__app,axiom,
    ! [A: $tType,D: $tType,C: $tType,B: $tType] :
      ( ( product_case_prod @ B @ C @ ( D > A ) )
      = ( ^ [F4: B > C > D > A,X3: product_prod @ B @ C,Y4: D] :
            ( product_case_prod @ B @ C @ A
            @ ^ [L: B,R2: C] : ( F4 @ L @ R2 @ Y4 )
            @ X3 ) ) ) ).

% case_prod_app
thf(fact_37_old_Oprod_Orec,axiom,
    ! [A: $tType,T: $tType,B: $tType,F1: A > B > T,A3: A,B3: B] :
      ( ( product_rec_prod @ A @ B @ T @ F1 @ ( product_Pair @ A @ B @ A3 @ B3 ) )
      = ( F1 @ A3 @ B3 ) ) ).

% old.prod.rec
thf(fact_38_split__cong,axiom,
    ! [C: $tType,B: $tType,A: $tType,Q2: product_prod @ A @ B,F: A > B > C,G3: A > B > C,P: product_prod @ A @ B] :
      ( ! [X2: A,Y: B] :
          ( ( ( product_Pair @ A @ B @ X2 @ Y )
            = Q2 )
         => ( ( F @ X2 @ Y )
            = ( G3 @ X2 @ Y ) ) )
     => ( ( P = Q2 )
       => ( ( product_case_prod @ A @ B @ C @ F @ P )
          = ( product_case_prod @ A @ B @ C @ G3 @ Q2 ) ) ) ) ).

% split_cong
thf(fact_39_same__fst__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( same_fst @ A @ B )
      = ( ^ [P3: A > $o,R3: A > ( set @ ( product_prod @ B @ B ) )] :
            ( collect @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) )
            @ ( product_case_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) @ $o
              @ ( product_case_prod @ A @ B @ ( ( product_prod @ A @ B ) > $o )
                @ ^ [X4: A,Y5: B] :
                    ( product_case_prod @ A @ B @ $o
                    @ ^ [X3: A,Y4: B] :
                        ( ( X4 = X3 )
                        & ( P3 @ X3 )
                        & ( member @ ( product_prod @ B @ B ) @ ( product_Pair @ B @ B @ Y5 @ Y4 ) @ ( R3 @ X3 ) ) ) ) ) ) ) ) ) ).

% same_fst_def
thf(fact_40_lex__prod__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( lex_prod @ A @ B )
      = ( ^ [Ra: set @ ( product_prod @ A @ A ),Rb: set @ ( product_prod @ B @ B )] :
            ( collect @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) )
            @ ( product_case_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) @ $o
              @ ( product_case_prod @ A @ B @ ( ( product_prod @ A @ B ) > $o )
                @ ^ [A4: A,B4: B] :
                    ( product_case_prod @ A @ B @ $o
                    @ ^ [A6: A,B6: B] :
                        ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ A4 @ A6 ) @ Ra )
                        | ( ( A4 = A6 )
                          & ( member @ ( product_prod @ B @ B ) @ ( product_Pair @ B @ B @ B4 @ B6 ) @ Rb ) ) ) ) ) ) ) ) ) ).

% lex_prod_def
thf(fact_41_internal__case__prod__def,axiom,
    ! [C: $tType,B: $tType,A: $tType] :
      ( ( produc2004651681e_prod @ A @ B @ C )
      = ( product_case_prod @ A @ B @ C ) ) ).

% internal_case_prod_def
thf(fact_42_pred__equals__eq2,axiom,
    ! [B: $tType,A: $tType,R: set @ ( product_prod @ A @ B ),S: set @ ( product_prod @ A @ B )] :
      ( ( ( ^ [X3: A,Y4: B] : ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ X3 @ Y4 ) @ R ) )
        = ( ^ [X3: A,Y4: B] : ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ X3 @ Y4 ) @ S ) ) )
      = ( R = S ) ) ).

% pred_equals_eq2
thf(fact_43_internal__case__prod__conv,axiom,
    ! [B: $tType,A: $tType,C: $tType,C2: B > C > A,A3: B,B3: C] :
      ( ( produc2004651681e_prod @ B @ C @ A @ C2 @ ( product_Pair @ B @ C @ A3 @ B3 ) )
      = ( C2 @ A3 @ B3 ) ) ).

% internal_case_prod_conv
thf(fact_44_tllist_Oabs__eq__iff,axiom,
    ! [B: $tType,A: $tType,X: product_prod @ ( coinductive_llist @ A ) @ B,Y3: product_prod @ ( coinductive_llist @ A ) @ B] :
      ( ( ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( tLList446370796tllist @ A @ B )
          @ ^ [Xs: coinductive_llist @ A,A4: B] : ( tLList1672613558_llist @ B @ A @ A4 @ Xs )
          @ X )
        = ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( tLList446370796tllist @ A @ B )
          @ ^ [Xs: coinductive_llist @ A,A4: B] : ( tLList1672613558_llist @ B @ A @ A4 @ Xs )
          @ Y3 ) )
      = ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > $o )
        @ ^ [Xs: coinductive_llist @ A,A4: B] :
            ( product_case_prod @ ( coinductive_llist @ A ) @ B @ $o
            @ ^ [Ys: coinductive_llist @ A,B4: B] :
                ( ( Xs = Ys )
                & ( ( coinductive_lfinite @ A @ Ys )
                 => ( A4 = B4 ) ) ) )
        @ X
        @ Y3 ) ) ).

% tllist.abs_eq_iff
thf(fact_45_mem__Collect__eq,axiom,
    ! [A: $tType,A3: A,P2: A > $o] :
      ( ( member @ A @ A3 @ ( collect @ A @ P2 ) )
      = ( P2 @ A3 ) ) ).

% mem_Collect_eq
thf(fact_46_Collect__mem__eq,axiom,
    ! [A: $tType,A7: set @ A] :
      ( ( collect @ A
        @ ^ [X3: A] : ( member @ A @ X3 @ A7 ) )
      = A7 ) ).

% Collect_mem_eq
thf(fact_47_Collect__cong,axiom,
    ! [A: $tType,P2: A > $o,Q: A > $o] :
      ( ! [X2: A] :
          ( ( P2 @ X2 )
          = ( Q @ X2 ) )
     => ( ( collect @ A @ P2 )
        = ( collect @ A @ Q ) ) ) ).

% Collect_cong
thf(fact_48_ext,axiom,
    ! [B: $tType,A: $tType,F: A > B,G3: A > B] :
      ( ! [X2: A] :
          ( ( F @ X2 )
          = ( G3 @ X2 ) )
     => ( F = G3 ) ) ).

% ext
thf(fact_49_reflp__tllist,axiom,
    ! [B: $tType,A: $tType] :
      ( reflp @ ( product_prod @ ( coinductive_llist @ A ) @ B )
      @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > $o )
        @ ^ [Xs: coinductive_llist @ A,A4: B] :
            ( product_case_prod @ ( coinductive_llist @ A ) @ B @ $o
            @ ^ [Ys: coinductive_llist @ A,B4: B] :
                ( ( Xs = Ys )
                & ( ( coinductive_lfinite @ A @ Ys )
                 => ( A4 = B4 ) ) ) ) ) ) ).

% reflp_tllist
thf(fact_50_ssubst__Pair__rhs,axiom,
    ! [B: $tType,A: $tType,R4: A,S2: B,R: set @ ( product_prod @ A @ B ),S3: B] :
      ( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ R4 @ S2 ) @ R )
     => ( ( S3 = S2 )
       => ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ R4 @ S3 ) @ R ) ) ) ).

% ssubst_Pair_rhs
thf(fact_51_The__split__eq,axiom,
    ! [A: $tType,B: $tType,X: A,Y3: B] :
      ( ( the @ ( product_prod @ A @ B )
        @ ( product_case_prod @ A @ B @ $o
          @ ^ [X4: A,Y5: B] :
              ( ( X = X4 )
              & ( Y3 = Y5 ) ) ) )
      = ( product_Pair @ A @ B @ X @ Y3 ) ) ).

% The_split_eq
thf(fact_52_tllist__of__llist__inject,axiom,
    ! [A: $tType,B: $tType,B3: B,Xs2: coinductive_llist @ A,C2: B,Ys2: coinductive_llist @ A] :
      ( ( ( tLList1672613558_llist @ B @ A @ B3 @ Xs2 )
        = ( tLList1672613558_llist @ B @ A @ C2 @ Ys2 ) )
      = ( ( Xs2 = Ys2 )
        & ( ( coinductive_lfinite @ A @ Ys2 )
         => ( B3 = C2 ) ) ) ) ).

% tllist_of_llist_inject
thf(fact_53_in__lex__prod,axiom,
    ! [A: $tType,B: $tType,A3: A,B3: B,A5: A,B5: B,R4: set @ ( product_prod @ A @ A ),S2: set @ ( product_prod @ B @ B )] :
      ( ( member @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) ) @ ( product_Pair @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A3 @ B3 ) @ ( product_Pair @ A @ B @ A5 @ B5 ) ) @ ( lex_prod @ A @ B @ R4 @ S2 ) )
      = ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ A3 @ A5 ) @ R4 )
        | ( ( A3 = A5 )
          & ( member @ ( product_prod @ B @ B ) @ ( product_Pair @ B @ B @ B3 @ B5 ) @ S2 ) ) ) ) ).

% in_lex_prod
thf(fact_54_same__fstI,axiom,
    ! [B: $tType,A: $tType,P2: A > $o,X: A,Y6: B,Y3: B,R: A > ( set @ ( product_prod @ B @ B ) )] :
      ( ( P2 @ X )
     => ( ( member @ ( product_prod @ B @ B ) @ ( product_Pair @ B @ B @ Y6 @ Y3 ) @ ( R @ X ) )
       => ( member @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) ) @ ( product_Pair @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ X @ Y6 ) @ ( product_Pair @ A @ B @ X @ Y3 ) ) @ ( same_fst @ A @ B @ P2 @ R ) ) ) ) ).

% same_fstI
thf(fact_55_reflp__mono,axiom,
    ! [A: $tType,R: A > A > $o,Q: A > A > $o] :
      ( ( reflp @ A @ R )
     => ( ! [X2: A,Y: A] :
            ( ( R @ X2 @ Y )
           => ( Q @ X2 @ Y ) )
       => ( reflp @ A @ Q ) ) ) ).

% reflp_mono
thf(fact_56_reflp__def,axiom,
    ! [A: $tType] :
      ( ( reflp @ A )
      = ( ^ [R2: A > A > $o] :
          ! [X3: A] : ( R2 @ X3 @ X3 ) ) ) ).

% reflp_def
thf(fact_57_theI__unique,axiom,
    ! [A: $tType,P2: A > $o,X: A] :
      ( ? [X5: A] :
          ( ( P2 @ X5 )
          & ! [Y: A] :
              ( ( P2 @ Y )
             => ( Y = X5 ) ) )
     => ( ( P2 @ X )
        = ( X
          = ( the @ A @ P2 ) ) ) ) ).

% theI_unique
thf(fact_58_reflpI,axiom,
    ! [A: $tType,R4: A > A > $o] :
      ( ! [X2: A] : ( R4 @ X2 @ X2 )
     => ( reflp @ A @ R4 ) ) ).

% reflpI
thf(fact_59_reflpE,axiom,
    ! [A: $tType,R4: A > A > $o,X: A] :
      ( ( reflp @ A @ R4 )
     => ( R4 @ X @ X ) ) ).

% reflpE
thf(fact_60_reflpD,axiom,
    ! [A: $tType,R4: A > A > $o,X: A] :
      ( ( reflp @ A @ R4 )
     => ( R4 @ X @ X ) ) ).

% reflpD
thf(fact_61_tllist_Oabs__induct,axiom,
    ! [B: $tType,A: $tType,P2: ( tLList446370796tllist @ A @ B ) > $o,X: tLList446370796tllist @ A @ B] :
      ( ! [Y: product_prod @ ( coinductive_llist @ A ) @ B] :
          ( P2
          @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( tLList446370796tllist @ A @ B )
            @ ^ [Xs: coinductive_llist @ A,A4: B] : ( tLList1672613558_llist @ B @ A @ A4 @ Xs )
            @ Y ) )
     => ( P2 @ X ) ) ).

% tllist.abs_induct
thf(fact_62_tllist__of__llist__cong,axiom,
    ! [B: $tType,A: $tType,Xs2: coinductive_llist @ A,Xs3: coinductive_llist @ A,B3: B,B5: B] :
      ( ( Xs2 = Xs3 )
     => ( ( ( coinductive_lfinite @ A @ Xs3 )
         => ( B3 = B5 ) )
       => ( ( tLList1672613558_llist @ B @ A @ B3 @ Xs2 )
          = ( tLList1672613558_llist @ B @ A @ B5 @ Xs3 ) ) ) ) ).

% tllist_of_llist_cong
thf(fact_63_old_Orec__prod__def,axiom,
    ! [T: $tType,B: $tType,A: $tType] :
      ( ( product_rec_prod @ A @ B @ T )
      = ( ^ [F12: A > B > T,X3: product_prod @ A @ B] : ( the @ T @ ( product_rec_set_prod @ A @ B @ T @ F12 @ X3 ) ) ) ) ).

% old.rec_prod_def
thf(fact_64_the__sym__eq__trivial,axiom,
    ! [A: $tType,X: A] :
      ( ( the @ A
        @ ( ^ [Y7: A,Z2: A] : Y7 = Z2
          @ X ) )
      = X ) ).

% the_sym_eq_trivial
thf(fact_65_the__eq__trivial,axiom,
    ! [A: $tType,A3: A] :
      ( ( the @ A
        @ ^ [X3: A] : X3 = A3 )
      = A3 ) ).

% the_eq_trivial
thf(fact_66_the__equality,axiom,
    ! [A: $tType,P2: A > $o,A3: A] :
      ( ( P2 @ A3 )
     => ( ! [X2: A] :
            ( ( P2 @ X2 )
           => ( X2 = A3 ) )
       => ( ( the @ A @ P2 )
          = A3 ) ) ) ).

% the_equality
thf(fact_67_the1__equality,axiom,
    ! [A: $tType,P2: A > $o,A3: A] :
      ( ? [X5: A] :
          ( ( P2 @ X5 )
          & ! [Y: A] :
              ( ( P2 @ Y )
             => ( Y = X5 ) ) )
     => ( ( P2 @ A3 )
       => ( ( the @ A @ P2 )
          = A3 ) ) ) ).

% the1_equality
thf(fact_68_the1I2,axiom,
    ! [A: $tType,P2: A > $o,Q: A > $o] :
      ( ? [X5: A] :
          ( ( P2 @ X5 )
          & ! [Y: A] :
              ( ( P2 @ Y )
             => ( Y = X5 ) ) )
     => ( ! [X2: A] :
            ( ( P2 @ X2 )
           => ( Q @ X2 ) )
       => ( Q @ ( the @ A @ P2 ) ) ) ) ).

% the1I2
thf(fact_69_If__def,axiom,
    ! [A: $tType] :
      ( ( if @ A )
      = ( ^ [P3: $o,X3: A,Y4: A] :
            ( the @ A
            @ ^ [Z3: A] :
                ( ( P3
                 => ( Z3 = X3 ) )
                & ( ~ P3
                 => ( Z3 = Y4 ) ) ) ) ) ) ).

% If_def
thf(fact_70_theI2,axiom,
    ! [A: $tType,P2: A > $o,A3: A,Q: A > $o] :
      ( ( P2 @ A3 )
     => ( ! [X2: A] :
            ( ( P2 @ X2 )
           => ( X2 = A3 ) )
       => ( ! [X2: A] :
              ( ( P2 @ X2 )
             => ( Q @ X2 ) )
         => ( Q @ ( the @ A @ P2 ) ) ) ) ) ).

% theI2
thf(fact_71_theI,axiom,
    ! [A: $tType,P2: A > $o,A3: A] :
      ( ( P2 @ A3 )
     => ( ! [X2: A] :
            ( ( P2 @ X2 )
           => ( X2 = A3 ) )
       => ( P2 @ ( the @ A @ P2 ) ) ) ) ).

% theI
thf(fact_72_theI_H,axiom,
    ! [A: $tType,P2: A > $o] :
      ( ? [X5: A] :
          ( ( P2 @ X5 )
          & ! [Y: A] :
              ( ( P2 @ Y )
             => ( Y = X5 ) ) )
     => ( P2 @ ( the @ A @ P2 ) ) ) ).

% theI'
thf(fact_73_cr__tllist__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( tLList47617868tllist @ A @ B )
      = ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( ( tLList446370796tllist @ A @ B ) > $o )
        @ ^ [Xs: coinductive_llist @ A,B4: B] :
            ( ^ [Y7: tLList446370796tllist @ A @ B,Z2: tLList446370796tllist @ A @ B] : Y7 = Z2
            @ ( tLList1672613558_llist @ B @ A @ B4 @ Xs ) ) ) ) ).

% cr_tllist_def
thf(fact_74_inv__image__def,axiom,
    ! [A: $tType,B: $tType] :
      ( ( inv_image @ B @ A )
      = ( ^ [R2: set @ ( product_prod @ B @ B ),F4: A > B] :
            ( collect @ ( product_prod @ A @ A )
            @ ( product_case_prod @ A @ A @ $o
              @ ^ [X3: A,Y4: A] : ( member @ ( product_prod @ B @ B ) @ ( product_Pair @ B @ B @ ( F4 @ X3 ) @ ( F4 @ Y4 ) ) @ R2 ) ) ) ) ) ).

% inv_image_def
thf(fact_75_tfilter_Oabs__eq,axiom,
    ! [B: $tType,A: $tType,Xb: B,Xa: A > $o,X: product_prod @ ( coinductive_llist @ A ) @ B] :
      ( ( tLList1813626245filter @ B @ A @ Xb @ Xa
        @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( tLList446370796tllist @ A @ B )
          @ ^ [Xs: coinductive_llist @ A,A4: B] : ( tLList1672613558_llist @ B @ A @ A4 @ Xs )
          @ X ) )
      = ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( tLList446370796tllist @ A @ B )
        @ ^ [Xs: coinductive_llist @ A,A4: B] : ( tLList1672613558_llist @ B @ A @ A4 @ Xs )
        @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( product_prod @ ( coinductive_llist @ A ) @ B )
          @ ^ [Xs: coinductive_llist @ A,B6: B] : ( product_Pair @ ( coinductive_llist @ A ) @ B @ ( coinductive_lfilter @ A @ Xa @ Xs ) @ ( if @ B @ ( coinductive_lfinite @ A @ Xs ) @ B6 @ Xb ) )
          @ X ) ) ) ).

% tfilter.abs_eq
thf(fact_76_old_Orec__unit__def,axiom,
    ! [T: $tType] :
      ( ( product_rec_unit @ T )
      = ( ^ [F12: T,X3: product_unit] : ( the @ T @ ( product_rec_set_unit @ T @ F12 @ X3 ) ) ) ) ).

% old.rec_unit_def
thf(fact_77_cut__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( cut @ A @ B )
      = ( ^ [F4: A > B,R3: set @ ( product_prod @ A @ A ),X3: A,Y4: A] : ( if @ B @ ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ Y4 @ X3 ) @ R3 ) @ ( F4 @ Y4 ) @ ( undefined @ B ) ) ) ) ).

% cut_def
thf(fact_78_DEADID_Orel__reflp,axiom,
    ! [A: $tType] :
      ( reflp @ A
      @ ^ [Y7: A,Z2: A] : Y7 = Z2 ) ).

% DEADID.rel_reflp
thf(fact_79_Nitpick_OThe__psimp,axiom,
    ! [A: $tType,P2: A > $o,X: A] :
      ( ( P2
        = ( ^ [Y7: A,Z2: A] : Y7 = Z2
          @ X ) )
     => ( ( the @ A @ P2 )
        = X ) ) ).

% Nitpick.The_psimp
thf(fact_80_in__inv__image,axiom,
    ! [A: $tType,B: $tType,X: A,Y3: A,R4: set @ ( product_prod @ B @ B ),F: A > B] :
      ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X @ Y3 ) @ ( inv_image @ B @ A @ R4 @ F ) )
      = ( member @ ( product_prod @ B @ B ) @ ( product_Pair @ B @ B @ ( F @ X ) @ ( F @ Y3 ) ) @ R4 ) ) ).

% in_inv_image
thf(fact_81_cuts__eq,axiom,
    ! [B: $tType,A: $tType,F: A > B,R: set @ ( product_prod @ A @ A ),X: A,G3: A > B] :
      ( ( ( cut @ A @ B @ F @ R @ X )
        = ( cut @ A @ B @ G3 @ R @ X ) )
      = ( ! [Y4: A] :
            ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ Y4 @ X ) @ R )
           => ( ( F @ Y4 )
              = ( G3 @ Y4 ) ) ) ) ) ).

% cuts_eq
thf(fact_82_cut__apply,axiom,
    ! [B: $tType,A: $tType,X: A,A3: A,R: set @ ( product_prod @ A @ A ),F: A > B] :
      ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X @ A3 ) @ R )
     => ( ( cut @ A @ B @ F @ R @ A3 @ X )
        = ( F @ X ) ) ) ).

% cut_apply
thf(fact_83_lfilter__K__True,axiom,
    ! [A: $tType,Xs2: coinductive_llist @ A] :
      ( ( coinductive_lfilter @ A
        @ ^ [Uu: A] : $true
        @ Xs2 )
      = Xs2 ) ).

% lfilter_K_True
thf(fact_84_lfilter__idem,axiom,
    ! [A: $tType,P2: A > $o,Xs2: coinductive_llist @ A] :
      ( ( coinductive_lfilter @ A @ P2 @ ( coinductive_lfilter @ A @ P2 @ Xs2 ) )
      = ( coinductive_lfilter @ A @ P2 @ Xs2 ) ) ).

% lfilter_idem
thf(fact_85_rp__inv__image__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( fun_rp_inv_image @ A @ B )
      = ( product_case_prod @ ( set @ ( product_prod @ A @ A ) ) @ ( set @ ( product_prod @ A @ A ) ) @ ( ( B > A ) > ( product_prod @ ( set @ ( product_prod @ B @ B ) ) @ ( set @ ( product_prod @ B @ B ) ) ) )
        @ ^ [R3: set @ ( product_prod @ A @ A ),S4: set @ ( product_prod @ A @ A ),F4: B > A] : ( product_Pair @ ( set @ ( product_prod @ B @ B ) ) @ ( set @ ( product_prod @ B @ B ) ) @ ( inv_image @ A @ B @ R3 @ F4 ) @ ( inv_image @ A @ B @ S4 @ F4 ) ) ) ) ).

% rp_inv_image_def
thf(fact_86_lfinite__lfilterI,axiom,
    ! [A: $tType,Xs2: coinductive_llist @ A,P2: A > $o] :
      ( ( coinductive_lfinite @ A @ Xs2 )
     => ( coinductive_lfinite @ A @ ( coinductive_lfilter @ A @ P2 @ Xs2 ) ) ) ).

% lfinite_lfilterI
thf(fact_87_adm__lemma,axiom,
    ! [B: $tType,A: $tType,R: set @ ( product_prod @ A @ A ),F5: ( A > B ) > A > B] :
      ( adm_wf @ A @ B @ R
      @ ^ [F4: A > B,X3: A] : ( F5 @ ( cut @ A @ B @ F4 @ R @ X3 ) @ X3 ) ) ).

% adm_lemma
thf(fact_88_lfilter__lfilter,axiom,
    ! [A: $tType,P2: A > $o,Q: A > $o,Xs2: coinductive_llist @ A] :
      ( ( coinductive_lfilter @ A @ P2 @ ( coinductive_lfilter @ A @ Q @ Xs2 ) )
      = ( coinductive_lfilter @ A
        @ ^ [X3: A] :
            ( ( P2 @ X3 )
            & ( Q @ X3 ) )
        @ Xs2 ) ) ).

% lfilter_lfilter
thf(fact_89_adm__wf__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( adm_wf @ A @ B )
      = ( ^ [R3: set @ ( product_prod @ A @ A ),F6: ( A > B ) > A > B] :
          ! [F4: A > B,G4: A > B,X3: A] :
            ( ! [Z3: A] :
                ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ Z3 @ X3 ) @ R3 )
               => ( ( F4 @ Z3 )
                  = ( G4 @ Z3 ) ) )
           => ( ( F6 @ F4 @ X3 )
              = ( F6 @ G4 @ X3 ) ) ) ) ) ).

% adm_wf_def
thf(fact_90_rp__inv__image__rp,axiom,
    ! [A: $tType,B: $tType,P2: product_prod @ ( set @ ( product_prod @ A @ A ) ) @ ( set @ ( product_prod @ A @ A ) ),F: B > A] :
      ( ( fun_reduction_pair @ A @ P2 )
     => ( fun_reduction_pair @ B @ ( fun_rp_inv_image @ A @ B @ P2 @ F ) ) ) ).

% rp_inv_image_rp
thf(fact_91_old_Orec__bool__def,axiom,
    ! [T: $tType] :
      ( ( product_rec_bool @ T )
      = ( ^ [F12: T,F22: T,X3: $o] : ( the @ T @ ( product_rec_set_bool @ T @ F12 @ F22 @ X3 ) ) ) ) ).

% old.rec_bool_def
thf(fact_92_terminal__tllist__of__llist,axiom,
    ! [B: $tType,A: $tType,Xs2: coinductive_llist @ B,Y3: A] :
      ( ( ( coinductive_lfinite @ B @ Xs2 )
       => ( ( tLList2110128105rminal @ B @ A @ ( tLList1672613558_llist @ A @ B @ Y3 @ Xs2 ) )
          = Y3 ) )
      & ( ~ ( coinductive_lfinite @ B @ Xs2 )
       => ( ( tLList2110128105rminal @ B @ A @ ( tLList1672613558_llist @ A @ B @ Y3 @ Xs2 ) )
          = ( undefined @ A ) ) ) ) ).

% terminal_tllist_of_llist
thf(fact_93_in__inv__imagep,axiom,
    ! [B: $tType,A: $tType] :
      ( ( inv_imagep @ A @ B )
      = ( ^ [R2: A > A > $o,F4: B > A,X3: B,Y4: B] : ( R2 @ ( F4 @ X3 ) @ ( F4 @ Y4 ) ) ) ) ).

% in_inv_imagep
thf(fact_94_case__swap,axiom,
    ! [A: $tType,B: $tType,C: $tType,F: C > B > A,P: product_prod @ C @ B] :
      ( ( product_case_prod @ B @ C @ A
        @ ^ [Y4: B,X3: C] : ( F @ X3 @ Y4 )
        @ ( product_swap @ C @ B @ P ) )
      = ( product_case_prod @ C @ B @ A @ F @ P ) ) ).

% case_swap
thf(fact_95_llast__linfinite,axiom,
    ! [A: $tType,Xs2: coinductive_llist @ A] :
      ( ~ ( coinductive_lfinite @ A @ Xs2 )
     => ( ( coinductive_llast @ A @ Xs2 )
        = ( undefined @ A ) ) ) ).

% llast_linfinite
thf(fact_96_swap__swap,axiom,
    ! [B: $tType,A: $tType,P: product_prod @ A @ B] :
      ( ( product_swap @ B @ A @ ( product_swap @ A @ B @ P ) )
      = P ) ).

% swap_swap
thf(fact_97_old_Obool_Osimps_I5_J,axiom,
    ! [T: $tType,F1: T,F23: T] :
      ( ( product_rec_bool @ T @ F1 @ F23 @ $true )
      = F1 ) ).

% old.bool.simps(5)
thf(fact_98_old_Obool_Osimps_I6_J,axiom,
    ! [T: $tType,F1: T,F23: T] :
      ( ( product_rec_bool @ T @ F1 @ F23 @ $false )
      = F23 ) ).

% old.bool.simps(6)
thf(fact_99_swap__simp,axiom,
    ! [A: $tType,B: $tType,X: B,Y3: A] :
      ( ( product_swap @ B @ A @ ( product_Pair @ B @ A @ X @ Y3 ) )
      = ( product_Pair @ A @ B @ Y3 @ X ) ) ).

% swap_simp
thf(fact_100_terminal__tllist__of__llist__lfinite,axiom,
    ! [A: $tType,B: $tType,Xs2: coinductive_llist @ A,B3: B] :
      ( ( coinductive_lfinite @ A @ Xs2 )
     => ( ( tLList2110128105rminal @ A @ B @ ( tLList1672613558_llist @ B @ A @ B3 @ Xs2 ) )
        = B3 ) ) ).

% terminal_tllist_of_llist_lfinite
thf(fact_101_inv__imagep__def,axiom,
    ! [A: $tType,B: $tType] :
      ( ( inv_imagep @ B @ A )
      = ( ^ [R2: B > B > $o,F4: A > B,X3: A,Y4: A] : ( R2 @ ( F4 @ X3 ) @ ( F4 @ Y4 ) ) ) ) ).

% inv_imagep_def
thf(fact_102_Quotient__tllist,axiom,
    ! [B: $tType,A: $tType] :
      ( quotient @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( tLList446370796tllist @ A @ B )
      @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > $o )
        @ ^ [Xs: coinductive_llist @ A,A4: B] :
            ( product_case_prod @ ( coinductive_llist @ A ) @ B @ $o
            @ ^ [Ys: coinductive_llist @ A,B4: B] :
                ( ( Xs = Ys )
                & ( ( coinductive_lfinite @ A @ Ys )
                 => ( A4 = B4 ) ) ) ) )
      @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( tLList446370796tllist @ A @ B )
        @ ^ [Xs: coinductive_llist @ A,A4: B] : ( tLList1672613558_llist @ B @ A @ A4 @ Xs ) )
      @ ^ [Ys: tLList446370796tllist @ A @ B] : ( product_Pair @ ( coinductive_llist @ A ) @ B @ ( tLList798109904tllist @ A @ B @ Ys ) @ ( tLList2110128105rminal @ A @ B @ Ys ) )
      @ ( tLList47617868tllist @ A @ B ) ) ).

% Quotient_tllist
thf(fact_103_terminal0__terminal,axiom,
    ! [B: $tType,A: $tType] :
      ( ( tLList1825092077minal0 @ ( ( tLList446370796tllist @ A @ B ) > B ) )
      = ( tLList2110128105rminal @ A @ B ) ) ).

% terminal0_terminal
thf(fact_104_terminal__tinfinite,axiom,
    ! [A: $tType,B: $tType,Xs2: tLList446370796tllist @ A @ B] :
      ( ~ ( coinductive_lfinite @ A @ ( tLList798109904tllist @ A @ B @ Xs2 ) )
     => ( ( tLList2110128105rminal @ A @ B @ Xs2 )
        = ( undefined @ B ) ) ) ).

% terminal_tinfinite
thf(fact_105_llist__of__tllist__inverse,axiom,
    ! [B: $tType,A: $tType,B3: tLList446370796tllist @ A @ B] :
      ( ( tLList1672613558_llist @ B @ A @ ( tLList2110128105rminal @ A @ B @ B3 ) @ ( tLList798109904tllist @ A @ B @ B3 ) )
      = B3 ) ).

% llist_of_tllist_inverse
thf(fact_106_tconcat_Oabs__eq,axiom,
    ! [B: $tType,A: $tType,Xa: B,X: product_prod @ ( coinductive_llist @ ( coinductive_llist @ A ) ) @ B] :
      ( ( tLList365522113concat @ B @ A @ Xa
        @ ( product_case_prod @ ( coinductive_llist @ ( coinductive_llist @ A ) ) @ B @ ( tLList446370796tllist @ ( coinductive_llist @ A ) @ B )
          @ ^ [Xs: coinductive_llist @ ( coinductive_llist @ A ),A4: B] : ( tLList1672613558_llist @ B @ ( coinductive_llist @ A ) @ A4 @ Xs )
          @ X ) )
      = ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( tLList446370796tllist @ A @ B )
        @ ^ [Xs: coinductive_llist @ A,A4: B] : ( tLList1672613558_llist @ B @ A @ A4 @ Xs )
        @ ( product_case_prod @ ( coinductive_llist @ ( coinductive_llist @ A ) ) @ B @ ( product_prod @ ( coinductive_llist @ A ) @ B )
          @ ^ [Xss: coinductive_llist @ ( coinductive_llist @ A ),B6: B] : ( product_Pair @ ( coinductive_llist @ A ) @ B @ ( coinductive_lconcat @ A @ Xss ) @ ( if @ B @ ( coinductive_lfinite @ ( coinductive_llist @ A ) @ Xss ) @ B6 @ Xa ) )
          @ X ) ) ) ).

% tconcat.abs_eq
thf(fact_107_tllist__of__llist__inverse,axiom,
    ! [B: $tType,A: $tType,B3: B,Xs2: coinductive_llist @ A] :
      ( ( tLList798109904tllist @ A @ B @ ( tLList1672613558_llist @ B @ A @ B3 @ Xs2 ) )
      = Xs2 ) ).

% tllist_of_llist_inverse
thf(fact_108_Quotient__total__abs__eq__iff,axiom,
    ! [B: $tType,A: $tType,R: A > A > $o,Abs: A > B,Rep: B > A,T2: A > B > $o,X: A,Y3: A] :
      ( ( quotient @ A @ B @ R @ Abs @ Rep @ T2 )
     => ( ( reflp @ A @ R )
       => ( ( ( Abs @ X )
            = ( Abs @ Y3 ) )
          = ( R @ X @ Y3 ) ) ) ) ).

% Quotient_total_abs_eq_iff
thf(fact_109_Quotient__total__abs__induct,axiom,
    ! [A: $tType,B: $tType,R: A > A > $o,Abs: A > B,Rep: B > A,T2: A > B > $o,P2: B > $o,X: B] :
      ( ( quotient @ A @ B @ R @ Abs @ Rep @ T2 )
     => ( ( reflp @ A @ R )
       => ( ! [Y: A] : ( P2 @ ( Abs @ Y ) )
         => ( P2 @ X ) ) ) ) ).

% Quotient_total_abs_induct
thf(fact_110_terminal__tappend,axiom,
    ! [A: $tType,B: $tType,Xs2: tLList446370796tllist @ B @ A,F: A > ( tLList446370796tllist @ B @ A )] :
      ( ( ( coinductive_lfinite @ B @ ( tLList798109904tllist @ B @ A @ Xs2 ) )
       => ( ( tLList2110128105rminal @ B @ A @ ( tLList192138471append @ B @ A @ A @ Xs2 @ F ) )
          = ( tLList2110128105rminal @ B @ A @ ( F @ ( tLList2110128105rminal @ B @ A @ Xs2 ) ) ) ) )
      & ( ~ ( coinductive_lfinite @ B @ ( tLList798109904tllist @ B @ A @ Xs2 ) )
       => ( ( tLList2110128105rminal @ B @ A @ ( tLList192138471append @ B @ A @ A @ Xs2 @ F ) )
          = ( tLList2110128105rminal @ B @ A @ Xs2 ) ) ) ) ).

% terminal_tappend
thf(fact_111_tfinite__tappend,axiom,
    ! [B: $tType,C: $tType,A: $tType,Xs2: tLList446370796tllist @ A @ C,F: C > ( tLList446370796tllist @ A @ B )] :
      ( ( coinductive_lfinite @ A @ ( tLList798109904tllist @ A @ B @ ( tLList192138471append @ A @ C @ B @ Xs2 @ F ) ) )
      = ( ( coinductive_lfinite @ A @ ( tLList798109904tllist @ A @ C @ Xs2 ) )
        & ( coinductive_lfinite @ A @ ( tLList798109904tllist @ A @ B @ ( F @ ( tLList2110128105rminal @ A @ C @ Xs2 ) ) ) ) ) ) ).

% tfinite_tappend
thf(fact_112_Quotient__cr__rel,axiom,
    ! [B: $tType,A: $tType,R: A > A > $o,Abs: A > B,Rep: B > A,T2: A > B > $o] :
      ( ( quotient @ A @ B @ R @ Abs @ Rep @ T2 )
     => ( T2
        = ( ^ [X3: A,Y4: B] :
              ( ( R @ X3 @ X3 )
              & ( ( Abs @ X3 )
                = Y4 ) ) ) ) ) ).

% Quotient_cr_rel
thf(fact_113_tappend__assoc,axiom,
    ! [C: $tType,A: $tType,B: $tType,D: $tType,Xs2: tLList446370796tllist @ A @ D,F: D > ( tLList446370796tllist @ A @ C ),G3: C > ( tLList446370796tllist @ A @ B )] :
      ( ( tLList192138471append @ A @ C @ B @ ( tLList192138471append @ A @ D @ C @ Xs2 @ F ) @ G3 )
      = ( tLList192138471append @ A @ D @ B @ Xs2
        @ ^ [B4: D] : ( tLList192138471append @ A @ C @ B @ ( F @ B4 ) @ G3 ) ) ) ).

% tappend_assoc
thf(fact_114_QuotientI,axiom,
    ! [A: $tType,B: $tType,Abs: B > A,Rep: A > B,R: B > B > $o,T2: B > A > $o] :
      ( ! [A2: A] :
          ( ( Abs @ ( Rep @ A2 ) )
          = A2 )
     => ( ! [A2: A] : ( R @ ( Rep @ A2 ) @ ( Rep @ A2 ) )
       => ( ! [R5: B,S5: B] :
              ( ( R @ R5 @ S5 )
              = ( ( R @ R5 @ R5 )
                & ( R @ S5 @ S5 )
                & ( ( Abs @ R5 )
                  = ( Abs @ S5 ) ) ) )
         => ( ( T2
              = ( ^ [X3: B,Y4: A] :
                    ( ( R @ X3 @ X3 )
                    & ( ( Abs @ X3 )
                      = Y4 ) ) ) )
           => ( quotient @ B @ A @ R @ Abs @ Rep @ T2 ) ) ) ) ) ).

% QuotientI
thf(fact_115_Quotient__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( quotient @ A @ B )
      = ( ^ [R3: A > A > $o,Abs2: A > B,Rep2: B > A,T3: A > B > $o] :
            ( ! [A4: B] :
                ( ( Abs2 @ ( Rep2 @ A4 ) )
                = A4 )
            & ! [A4: B] : ( R3 @ ( Rep2 @ A4 ) @ ( Rep2 @ A4 ) )
            & ! [R2: A,S6: A] :
                ( ( R3 @ R2 @ S6 )
                = ( ( R3 @ R2 @ R2 )
                  & ( R3 @ S6 @ S6 )
                  & ( ( Abs2 @ R2 )
                    = ( Abs2 @ S6 ) ) ) )
            & ( T3
              = ( ^ [X3: A,Y4: B] :
                    ( ( R3 @ X3 @ X3 )
                    & ( ( Abs2 @ X3 )
                      = Y4 ) ) ) ) ) ) ) ).

% Quotient_def
thf(fact_116_terminal__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( tLList2110128105rminal @ A @ B )
      = ( tLList200813139tllist @ B @ B @ A
        @ ^ [X12: B] : X12
        @ ^ [X_dummy: A] : ( tLList1825092077minal0 @ ( ( tLList446370796tllist @ A @ B ) > B ) ) ) ) ).

% terminal_def
thf(fact_117_terminal__tmap,axiom,
    ! [D: $tType,C: $tType,B: $tType,A: $tType,Xs2: tLList446370796tllist @ A @ B,F: A > D,G3: B > C] :
      ( ( coinductive_lfinite @ A @ ( tLList798109904tllist @ A @ B @ Xs2 ) )
     => ( ( tLList2110128105rminal @ D @ C @ ( tLList1669959861e_tmap @ A @ D @ B @ C @ F @ G3 @ Xs2 ) )
        = ( G3 @ ( tLList2110128105rminal @ A @ B @ Xs2 ) ) ) ) ).

% terminal_tmap
thf(fact_118_tconcat_Orsp,axiom,
    ! [A: $tType,B: $tType] :
      ( bNF_rel_fun @ B @ B @ ( ( product_prod @ ( coinductive_llist @ ( coinductive_llist @ A ) ) @ B ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) ) @ ( ( product_prod @ ( coinductive_llist @ ( coinductive_llist @ A ) ) @ B ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) )
      @ ^ [Y7: B,Z2: B] : Y7 = Z2
      @ ( bNF_rel_fun @ ( product_prod @ ( coinductive_llist @ ( coinductive_llist @ A ) ) @ B ) @ ( product_prod @ ( coinductive_llist @ ( coinductive_llist @ A ) ) @ B ) @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( product_prod @ ( coinductive_llist @ A ) @ B )
        @ ( product_case_prod @ ( coinductive_llist @ ( coinductive_llist @ A ) ) @ B @ ( ( product_prod @ ( coinductive_llist @ ( coinductive_llist @ A ) ) @ B ) > $o )
          @ ^ [Xs: coinductive_llist @ ( coinductive_llist @ A ),A4: B] :
              ( product_case_prod @ ( coinductive_llist @ ( coinductive_llist @ A ) ) @ B @ $o
              @ ^ [Ys: coinductive_llist @ ( coinductive_llist @ A ),B4: B] :
                  ( ( Xs = Ys )
                  & ( ( coinductive_lfinite @ ( coinductive_llist @ A ) @ Ys )
                   => ( A4 = B4 ) ) ) ) )
        @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > $o )
          @ ^ [Xs: coinductive_llist @ A,A4: B] :
              ( product_case_prod @ ( coinductive_llist @ A ) @ B @ $o
              @ ^ [Ys: coinductive_llist @ A,B4: B] :
                  ( ( Xs = Ys )
                  & ( ( coinductive_lfinite @ A @ Ys )
                   => ( A4 = B4 ) ) ) ) ) )
      @ ^ [B4: B] :
          ( product_case_prod @ ( coinductive_llist @ ( coinductive_llist @ A ) ) @ B @ ( product_prod @ ( coinductive_llist @ A ) @ B )
          @ ^ [Xss: coinductive_llist @ ( coinductive_llist @ A ),B6: B] : ( product_Pair @ ( coinductive_llist @ A ) @ B @ ( coinductive_lconcat @ A @ Xss ) @ ( if @ B @ ( coinductive_lfinite @ ( coinductive_llist @ A ) @ Xss ) @ B6 @ B4 ) ) )
      @ ^ [B4: B] :
          ( product_case_prod @ ( coinductive_llist @ ( coinductive_llist @ A ) ) @ B @ ( product_prod @ ( coinductive_llist @ A ) @ B )
          @ ^ [Xss: coinductive_llist @ ( coinductive_llist @ A ),B6: B] : ( product_Pair @ ( coinductive_llist @ A ) @ B @ ( coinductive_lconcat @ A @ Xss ) @ ( if @ B @ ( coinductive_lfinite @ ( coinductive_llist @ A ) @ Xss ) @ B6 @ B4 ) ) ) ) ).

% tconcat.rsp
thf(fact_119_tconcat__def,axiom,
    ! [A: $tType,B: $tType] :
      ( ( tLList365522113concat @ B @ A )
      = ( map_fun @ B @ B @ ( ( product_prod @ ( coinductive_llist @ ( coinductive_llist @ A ) ) @ B ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) ) @ ( ( tLList446370796tllist @ ( coinductive_llist @ A ) @ B ) > ( tLList446370796tllist @ A @ B ) ) @ ( id @ B )
        @ ( map_fun @ ( tLList446370796tllist @ ( coinductive_llist @ A ) @ B ) @ ( product_prod @ ( coinductive_llist @ ( coinductive_llist @ A ) ) @ B ) @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( tLList446370796tllist @ A @ B )
          @ ^ [Ys: tLList446370796tllist @ ( coinductive_llist @ A ) @ B] : ( product_Pair @ ( coinductive_llist @ ( coinductive_llist @ A ) ) @ B @ ( tLList798109904tllist @ ( coinductive_llist @ A ) @ B @ Ys ) @ ( tLList2110128105rminal @ ( coinductive_llist @ A ) @ B @ Ys ) )
          @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( tLList446370796tllist @ A @ B )
            @ ^ [Xs: coinductive_llist @ A,A4: B] : ( tLList1672613558_llist @ B @ A @ A4 @ Xs ) ) )
        @ ^ [B4: B] :
            ( product_case_prod @ ( coinductive_llist @ ( coinductive_llist @ A ) ) @ B @ ( product_prod @ ( coinductive_llist @ A ) @ B )
            @ ^ [Xss: coinductive_llist @ ( coinductive_llist @ A ),B6: B] : ( product_Pair @ ( coinductive_llist @ A ) @ B @ ( coinductive_lconcat @ A @ Xss ) @ ( if @ B @ ( coinductive_lfinite @ ( coinductive_llist @ A ) @ Xss ) @ B6 @ B4 ) ) ) ) ) ).

% tconcat_def
thf(fact_120_tllist_Osel_I2_J,axiom,
    ! [A: $tType,Aa: $tType,X21: Aa,X222: tLList446370796tllist @ Aa @ A] :
      ( ( tLList2110128105rminal @ Aa @ A @ ( tLList1992840728_TCons @ Aa @ A @ X21 @ X222 ) )
      = ( tLList1825092077minal0 @ ( ( tLList446370796tllist @ Aa @ A ) > A ) @ X222 ) ) ).

% tllist.sel(2)
thf(fact_121_tllist_Oinject_I2_J,axiom,
    ! [B: $tType,A: $tType,X21: A,X222: tLList446370796tllist @ A @ B,Y21: A,Y22: tLList446370796tllist @ A @ B] :
      ( ( ( tLList1992840728_TCons @ A @ B @ X21 @ X222 )
        = ( tLList1992840728_TCons @ A @ B @ Y21 @ Y22 ) )
      = ( ( X21 = Y21 )
        & ( X222 = Y22 ) ) ) ).

% tllist.inject(2)
thf(fact_122_case__prod__Pair,axiom,
    ! [B: $tType,A: $tType] :
      ( ( product_case_prod @ A @ B @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B ) )
      = ( id @ ( product_prod @ A @ B ) ) ) ).

% case_prod_Pair
thf(fact_123_terminal__TCons,axiom,
    ! [A: $tType,B: $tType,X: B,Xs2: tLList446370796tllist @ B @ A] :
      ( ( tLList2110128105rminal @ B @ A @ ( tLList1992840728_TCons @ B @ A @ X @ Xs2 ) )
      = ( tLList2110128105rminal @ B @ A @ Xs2 ) ) ).

% terminal_TCons
thf(fact_124_tappend__TCons,axiom,
    ! [B: $tType,A: $tType,C: $tType,A3: A,Tr: tLList446370796tllist @ A @ C,F: C > ( tLList446370796tllist @ A @ B )] :
      ( ( tLList192138471append @ A @ C @ B @ ( tLList1992840728_TCons @ A @ C @ A3 @ Tr ) @ F )
      = ( tLList1992840728_TCons @ A @ B @ A3 @ ( tLList192138471append @ A @ C @ B @ Tr @ F ) ) ) ).

% tappend_TCons
thf(fact_125_tllist_Osimps_I15_J,axiom,
    ! [D: $tType,C: $tType,B: $tType,A: $tType,F1: A > C,F23: B > D,X21: A,X222: tLList446370796tllist @ A @ B] :
      ( ( tLList1669959861e_tmap @ A @ C @ B @ D @ F1 @ F23 @ ( tLList1992840728_TCons @ A @ B @ X21 @ X222 ) )
      = ( tLList1992840728_TCons @ C @ D @ ( F1 @ X21 ) @ ( tLList1669959861e_tmap @ A @ C @ B @ D @ F1 @ F23 @ X222 ) ) ) ).

% tllist.simps(15)
thf(fact_126_tllist_Osimps_I6_J,axiom,
    ! [C: $tType,B: $tType,A: $tType,F1: B > C,F23: A > ( tLList446370796tllist @ A @ B ) > C,X21: A,X222: tLList446370796tllist @ A @ B] :
      ( ( tLList200813139tllist @ B @ C @ A @ F1 @ F23 @ ( tLList1992840728_TCons @ A @ B @ X21 @ X222 ) )
      = ( F23 @ X21 @ X222 ) ) ).

% tllist.simps(6)
thf(fact_127_TCons__eq__tmap__conv,axiom,
    ! [D: $tType,B: $tType,A: $tType,C: $tType,Y3: A,Ys2: tLList446370796tllist @ A @ B,F: C > A,G3: D > B,Xs2: tLList446370796tllist @ C @ D] :
      ( ( ( tLList1992840728_TCons @ A @ B @ Y3 @ Ys2 )
        = ( tLList1669959861e_tmap @ C @ A @ D @ B @ F @ G3 @ Xs2 ) )
      = ( ? [Z3: C,Zs: tLList446370796tllist @ C @ D] :
            ( ( Xs2
              = ( tLList1992840728_TCons @ C @ D @ Z3 @ Zs ) )
            & ( ( F @ Z3 )
              = Y3 )
            & ( ( tLList1669959861e_tmap @ C @ A @ D @ B @ F @ G3 @ Zs )
              = Ys2 ) ) ) ) ).

% TCons_eq_tmap_conv
thf(fact_128_tmap__eq__TCons__conv,axiom,
    ! [D: $tType,B: $tType,A: $tType,C: $tType,F: C > A,G3: D > B,Xs2: tLList446370796tllist @ C @ D,Y3: A,Ys2: tLList446370796tllist @ A @ B] :
      ( ( ( tLList1669959861e_tmap @ C @ A @ D @ B @ F @ G3 @ Xs2 )
        = ( tLList1992840728_TCons @ A @ B @ Y3 @ Ys2 ) )
      = ( ? [Z3: C,Zs: tLList446370796tllist @ C @ D] :
            ( ( Xs2
              = ( tLList1992840728_TCons @ C @ D @ Z3 @ Zs ) )
            & ( ( F @ Z3 )
              = Y3 )
            & ( ( tLList1669959861e_tmap @ C @ A @ D @ B @ F @ G3 @ Zs )
              = Ys2 ) ) ) ) ).

% tmap_eq_TCons_conv
thf(fact_129_tllist_Omap__id,axiom,
    ! [B: $tType,A: $tType,T4: tLList446370796tllist @ A @ B] :
      ( ( tLList1669959861e_tmap @ A @ A @ B @ B @ ( id @ A ) @ ( id @ B ) @ T4 )
      = T4 ) ).

% tllist.map_id
thf(fact_130_tllist_Omap__id0,axiom,
    ! [B: $tType,A: $tType] :
      ( ( tLList1669959861e_tmap @ A @ A @ B @ B @ ( id @ A ) @ ( id @ B ) )
      = ( id @ ( tLList446370796tllist @ A @ B ) ) ) ).

% tllist.map_id0
thf(fact_131_rel__fun__def__butlast,axiom,
    ! [B: $tType,D: $tType,C: $tType,E: $tType,F2: $tType,A: $tType,R: A > B > $o,S: C > E > $o,T2: D > F2 > $o,F: A > C > D,G3: B > E > F2] :
      ( ( bNF_rel_fun @ A @ B @ ( C > D ) @ ( E > F2 ) @ R @ ( bNF_rel_fun @ C @ E @ D @ F2 @ S @ T2 ) @ F @ G3 )
      = ( ! [X3: A,Y4: B] :
            ( ( R @ X3 @ Y4 )
           => ( bNF_rel_fun @ C @ E @ D @ F2 @ S @ T2 @ ( F @ X3 ) @ ( G3 @ Y4 ) ) ) ) ) ).

% rel_fun_def_butlast
thf(fact_132_id__transfer,axiom,
    ! [A: $tType,B: $tType,A7: A > B > $o] : ( bNF_rel_fun @ A @ B @ A @ B @ A7 @ A7 @ ( id @ A ) @ ( id @ B ) ) ).

% id_transfer
thf(fact_133_If__transfer,axiom,
    ! [A: $tType,B: $tType,A7: A > B > $o] :
      ( bNF_rel_fun @ $o @ $o @ ( A > A > A ) @ ( B > B > B )
      @ ^ [Y7: $o,Z2: $o] : Y7 = Z2
      @ ( bNF_rel_fun @ A @ B @ ( A > A ) @ ( B > B ) @ A7 @ ( bNF_rel_fun @ A @ B @ A @ B @ A7 @ A7 ) )
      @ ( if @ A )
      @ ( if @ B ) ) ).

% If_transfer
thf(fact_134_tllist_Ocase__distrib,axiom,
    ! [C: $tType,D: $tType,B: $tType,A: $tType,H: C > D,F1: B > C,F23: A > ( tLList446370796tllist @ A @ B ) > C,Tllist: tLList446370796tllist @ A @ B] :
      ( ( H @ ( tLList200813139tllist @ B @ C @ A @ F1 @ F23 @ Tllist ) )
      = ( tLList200813139tllist @ B @ D @ A
        @ ^ [X3: B] : ( H @ ( F1 @ X3 ) )
        @ ^ [X12: A,X23: tLList446370796tllist @ A @ B] : ( H @ ( F23 @ X12 @ X23 ) )
        @ Tllist ) ) ).

% tllist.case_distrib
thf(fact_135_tllist_Omap__ident,axiom,
    ! [B: $tType,A: $tType,T4: tLList446370796tllist @ A @ B] :
      ( ( tLList1669959861e_tmap @ A @ A @ B @ B
        @ ^ [X3: A] : X3
        @ ^ [X3: B] : X3
        @ T4 )
      = T4 ) ).

% tllist.map_ident
thf(fact_136_Quotient__id__abs__transfer,axiom,
    ! [B: $tType,A: $tType,R: A > A > $o,Abs: A > B,Rep: B > A,T2: A > B > $o] :
      ( ( quotient @ A @ B @ R @ Abs @ Rep @ T2 )
     => ( ( reflp @ A @ R )
       => ( bNF_rel_fun @ A @ A @ A @ B
          @ ^ [Y7: A,Z2: A] : Y7 = Z2
          @ T2
          @ ^ [X3: A] : X3
          @ Abs ) ) ) ).

% Quotient_id_abs_transfer
thf(fact_137_tfilter__def,axiom,
    ! [A: $tType,B: $tType] :
      ( ( tLList1813626245filter @ B @ A )
      = ( map_fun @ B @ B @ ( ( A > $o ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) ) @ ( ( A > $o ) > ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ A @ B ) ) @ ( id @ B )
        @ ( map_fun @ ( A > $o ) @ ( A > $o ) @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) ) @ ( ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ A @ B ) ) @ ( id @ ( A > $o ) )
          @ ( map_fun @ ( tLList446370796tllist @ A @ B ) @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( tLList446370796tllist @ A @ B )
            @ ^ [Ys: tLList446370796tllist @ A @ B] : ( product_Pair @ ( coinductive_llist @ A ) @ B @ ( tLList798109904tllist @ A @ B @ Ys ) @ ( tLList2110128105rminal @ A @ B @ Ys ) )
            @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( tLList446370796tllist @ A @ B )
              @ ^ [Xs: coinductive_llist @ A,A4: B] : ( tLList1672613558_llist @ B @ A @ A4 @ Xs ) ) ) )
        @ ^ [B4: B,P3: A > $o] :
            ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( product_prod @ ( coinductive_llist @ A ) @ B )
            @ ^ [Xs: coinductive_llist @ A,B6: B] : ( product_Pair @ ( coinductive_llist @ A ) @ B @ ( coinductive_lfilter @ A @ P3 @ Xs ) @ ( if @ B @ ( coinductive_lfinite @ A @ Xs ) @ B6 @ B4 ) ) ) ) ) ).

% tfilter_def
thf(fact_138_fun_Orel__reflp,axiom,
    ! [D: $tType,A: $tType,R: A > A > $o] :
      ( ( reflp @ A @ R )
     => ( reflp @ ( D > A )
        @ ( bNF_rel_fun @ D @ D @ A @ A
          @ ^ [Y7: D,Z2: D] : Y7 = Z2
          @ R ) ) ) ).

% fun.rel_reflp
thf(fact_139_map__fun_Oidentity,axiom,
    ! [B: $tType,A: $tType] :
      ( ( map_fun @ A @ A @ B @ B
        @ ^ [X3: A] : X3
        @ ^ [X3: B] : X3 )
      = ( id @ ( A > B ) ) ) ).

% map_fun.identity
thf(fact_140_tfilter_Orsp,axiom,
    ! [A: $tType,B: $tType] :
      ( bNF_rel_fun @ B @ B @ ( ( A > $o ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) ) @ ( ( A > $o ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) )
      @ ^ [Y7: B,Z2: B] : Y7 = Z2
      @ ( bNF_rel_fun @ ( A > $o ) @ ( A > $o ) @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) ) @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) )
        @ ^ [Y7: A > $o,Z2: A > $o] : Y7 = Z2
        @ ( bNF_rel_fun @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( product_prod @ ( coinductive_llist @ A ) @ B )
          @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > $o )
            @ ^ [Xs: coinductive_llist @ A,A4: B] :
                ( product_case_prod @ ( coinductive_llist @ A ) @ B @ $o
                @ ^ [Ys: coinductive_llist @ A,B4: B] :
                    ( ( Xs = Ys )
                    & ( ( coinductive_lfinite @ A @ Ys )
                     => ( A4 = B4 ) ) ) ) )
          @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > $o )
            @ ^ [Xs: coinductive_llist @ A,A4: B] :
                ( product_case_prod @ ( coinductive_llist @ A ) @ B @ $o
                @ ^ [Ys: coinductive_llist @ A,B4: B] :
                    ( ( Xs = Ys )
                    & ( ( coinductive_lfinite @ A @ Ys )
                     => ( A4 = B4 ) ) ) ) ) ) )
      @ ^ [B4: B,P3: A > $o] :
          ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( product_prod @ ( coinductive_llist @ A ) @ B )
          @ ^ [Xs: coinductive_llist @ A,B6: B] : ( product_Pair @ ( coinductive_llist @ A ) @ B @ ( coinductive_lfilter @ A @ P3 @ Xs ) @ ( if @ B @ ( coinductive_lfinite @ A @ Xs ) @ B6 @ B4 ) ) )
      @ ^ [B4: B,P3: A > $o] :
          ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( product_prod @ ( coinductive_llist @ A ) @ B )
          @ ^ [Xs: coinductive_llist @ A,B6: B] : ( product_Pair @ ( coinductive_llist @ A ) @ B @ ( coinductive_lfilter @ A @ P3 @ Xs ) @ ( if @ B @ ( coinductive_lfinite @ A @ Xs ) @ B6 @ B4 ) ) ) ) ).

% tfilter.rsp
thf(fact_141_tfilter_Otransfer,axiom,
    ! [A: $tType,B: $tType] :
      ( bNF_rel_fun @ B @ B @ ( ( A > $o ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) ) @ ( ( A > $o ) > ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ A @ B ) )
      @ ^ [Y7: B,Z2: B] : Y7 = Z2
      @ ( bNF_rel_fun @ ( A > $o ) @ ( A > $o ) @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) ) @ ( ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ A @ B ) )
        @ ^ [Y7: A > $o,Z2: A > $o] : Y7 = Z2
        @ ( bNF_rel_fun @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( tLList446370796tllist @ A @ B ) @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( tLList446370796tllist @ A @ B )
          @ ( tLList1832236142tllist @ A @ A @ B @ B
            @ ^ [Y7: A,Z2: A] : Y7 = Z2
            @ ^ [Y7: B,Z2: B] : Y7 = Z2 )
          @ ( tLList1832236142tllist @ A @ A @ B @ B
            @ ^ [Y7: A,Z2: A] : Y7 = Z2
            @ ^ [Y7: B,Z2: B] : Y7 = Z2 ) ) )
      @ ^ [B4: B,P3: A > $o] :
          ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( product_prod @ ( coinductive_llist @ A ) @ B )
          @ ^ [Xs: coinductive_llist @ A,B6: B] : ( product_Pair @ ( coinductive_llist @ A ) @ B @ ( coinductive_lfilter @ A @ P3 @ Xs ) @ ( if @ B @ ( coinductive_lfinite @ A @ Xs ) @ B6 @ B4 ) ) )
      @ ( tLList1813626245filter @ B @ A ) ) ).

% tfilter.transfer
thf(fact_142_terminal__transfer,axiom,
    ! [A: $tType,B: $tType,C: $tType,A7: A > C > $o] :
      ( bNF_rel_fun @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( tLList446370796tllist @ C @ B ) @ B @ B
      @ ( tLList1832236142tllist @ A @ C @ B @ B @ A7
        @ ^ [Y7: B,Z2: B] : Y7 = Z2 )
      @ ^ [Y7: B,Z2: B] : Y7 = Z2
      @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ B
        @ ^ [Xs: coinductive_llist @ A,B4: B] : ( if @ B @ ( coinductive_lfinite @ A @ Xs ) @ B4 @ ( undefined @ B ) ) )
      @ ( tLList2110128105rminal @ C @ B ) ) ).

% terminal_transfer
thf(fact_143_apsnd__id,axiom,
    ! [B: $tType,A: $tType] :
      ( ( product_apsnd @ B @ B @ A @ ( id @ B ) )
      = ( id @ ( product_prod @ A @ B ) ) ) ).

% apsnd_id
thf(fact_144_tllist_Orel__eq__transfer,axiom,
    ! [B: $tType,A: $tType] :
      ( bNF_rel_fun @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( tLList446370796tllist @ A @ B ) @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > $o ) @ ( ( tLList446370796tllist @ A @ B ) > $o )
      @ ( tLList1832236142tllist @ A @ A @ B @ B
        @ ^ [Y7: A,Z2: A] : Y7 = Z2
        @ ^ [Y7: B,Z2: B] : Y7 = Z2 )
      @ ( bNF_rel_fun @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( tLList446370796tllist @ A @ B ) @ $o @ $o
        @ ( tLList1832236142tllist @ A @ A @ B @ B
          @ ^ [Y7: A,Z2: A] : Y7 = Z2
          @ ^ [Y7: B,Z2: B] : Y7 = Z2 )
        @ ^ [Y7: $o,Z2: $o] : Y7 = Z2 )
      @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > $o )
        @ ^ [Xs: coinductive_llist @ A,A4: B] :
            ( product_case_prod @ ( coinductive_llist @ A ) @ B @ $o
            @ ^ [Ys: coinductive_llist @ A,B4: B] :
                ( ( Xs = Ys )
                & ( ( coinductive_lfinite @ A @ Ys )
                 => ( A4 = B4 ) ) ) ) )
      @ ^ [Y7: tLList446370796tllist @ A @ B,Z2: tLList446370796tllist @ A @ B] : Y7 = Z2 ) ).

% tllist.rel_eq_transfer
thf(fact_145_apsnd__conv,axiom,
    ! [A: $tType,B: $tType,C: $tType,F: C > B,X: A,Y3: C] :
      ( ( product_apsnd @ C @ B @ A @ F @ ( product_Pair @ A @ C @ X @ Y3 ) )
      = ( product_Pair @ A @ B @ X @ ( F @ Y3 ) ) ) ).

% apsnd_conv
thf(fact_146_tllist_Opcr__cr__eq,axiom,
    ! [F2: $tType,E: $tType] :
      ( ( tLList1832236142tllist @ E @ E @ F2 @ F2
        @ ^ [Y7: E,Z2: E] : Y7 = Z2
        @ ^ [Y7: F2,Z2: F2] : Y7 = Z2 )
      = ( tLList47617868tllist @ E @ F2 ) ) ).

% tllist.pcr_cr_eq
thf(fact_147_tllist__of__llist__transfer,axiom,
    ! [B: $tType,A: $tType] :
      ( bNF_rel_fun @ A @ A @ ( ( coinductive_llist @ B ) > ( product_prod @ ( coinductive_llist @ B ) @ A ) ) @ ( ( coinductive_llist @ B ) > ( tLList446370796tllist @ B @ A ) )
      @ ^ [Y7: A,Z2: A] : Y7 = Z2
      @ ( bNF_rel_fun @ ( coinductive_llist @ B ) @ ( coinductive_llist @ B ) @ ( product_prod @ ( coinductive_llist @ B ) @ A ) @ ( tLList446370796tllist @ B @ A )
        @ ^ [Y7: coinductive_llist @ B,Z2: coinductive_llist @ B] : Y7 = Z2
        @ ( tLList1832236142tllist @ B @ B @ A @ A
          @ ^ [Y7: B,Z2: B] : Y7 = Z2
          @ ^ [Y7: A,Z2: A] : Y7 = Z2 ) )
      @ ^ [B4: A,Xs: coinductive_llist @ B] : ( product_Pair @ ( coinductive_llist @ B ) @ A @ Xs @ B4 )
      @ ( tLList1672613558_llist @ A @ B ) ) ).

% tllist_of_llist_transfer
thf(fact_148_tconcat_Otransfer,axiom,
    ! [A: $tType,B: $tType] :
      ( bNF_rel_fun @ B @ B @ ( ( product_prod @ ( coinductive_llist @ ( coinductive_llist @ A ) ) @ B ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) ) @ ( ( tLList446370796tllist @ ( coinductive_llist @ A ) @ B ) > ( tLList446370796tllist @ A @ B ) )
      @ ^ [Y7: B,Z2: B] : Y7 = Z2
      @ ( bNF_rel_fun @ ( product_prod @ ( coinductive_llist @ ( coinductive_llist @ A ) ) @ B ) @ ( tLList446370796tllist @ ( coinductive_llist @ A ) @ B ) @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( tLList446370796tllist @ A @ B )
        @ ( tLList1832236142tllist @ ( coinductive_llist @ A ) @ ( coinductive_llist @ A ) @ B @ B
          @ ^ [Y7: coinductive_llist @ A,Z2: coinductive_llist @ A] : Y7 = Z2
          @ ^ [Y7: B,Z2: B] : Y7 = Z2 )
        @ ( tLList1832236142tllist @ A @ A @ B @ B
          @ ^ [Y7: A,Z2: A] : Y7 = Z2
          @ ^ [Y7: B,Z2: B] : Y7 = Z2 ) )
      @ ^ [B4: B] :
          ( product_case_prod @ ( coinductive_llist @ ( coinductive_llist @ A ) ) @ B @ ( product_prod @ ( coinductive_llist @ A ) @ B )
          @ ^ [Xss: coinductive_llist @ ( coinductive_llist @ A ),B6: B] : ( product_Pair @ ( coinductive_llist @ A ) @ B @ ( coinductive_lconcat @ A @ Xss ) @ ( if @ B @ ( coinductive_lfinite @ ( coinductive_llist @ A ) @ Xss ) @ B6 @ B4 ) ) )
      @ ( tLList365522113concat @ B @ A ) ) ).

% tconcat.transfer
thf(fact_149_tappend__def,axiom,
    ! [B: $tType,C: $tType,A: $tType] :
      ( ( tLList192138471append @ A @ B @ C )
      = ( map_fun @ ( tLList446370796tllist @ A @ B ) @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( ( B > ( product_prod @ ( coinductive_llist @ A ) @ C ) ) > ( product_prod @ ( coinductive_llist @ A ) @ C ) ) @ ( ( B > ( tLList446370796tllist @ A @ C ) ) > ( tLList446370796tllist @ A @ C ) )
        @ ^ [Ys: tLList446370796tllist @ A @ B] : ( product_Pair @ ( coinductive_llist @ A ) @ B @ ( tLList798109904tllist @ A @ B @ Ys ) @ ( tLList2110128105rminal @ A @ B @ Ys ) )
        @ ( map_fun @ ( B > ( tLList446370796tllist @ A @ C ) ) @ ( B > ( product_prod @ ( coinductive_llist @ A ) @ C ) ) @ ( product_prod @ ( coinductive_llist @ A ) @ C ) @ ( tLList446370796tllist @ A @ C )
          @ ( map_fun @ B @ B @ ( tLList446370796tllist @ A @ C ) @ ( product_prod @ ( coinductive_llist @ A ) @ C ) @ ( id @ B )
            @ ^ [Ys: tLList446370796tllist @ A @ C] : ( product_Pair @ ( coinductive_llist @ A ) @ C @ ( tLList798109904tllist @ A @ C @ Ys ) @ ( tLList2110128105rminal @ A @ C @ Ys ) ) )
          @ ( product_case_prod @ ( coinductive_llist @ A ) @ C @ ( tLList446370796tllist @ A @ C )
            @ ^ [Xs: coinductive_llist @ A,A4: C] : ( tLList1672613558_llist @ C @ A @ A4 @ Xs ) ) )
        @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( ( B > ( product_prod @ ( coinductive_llist @ A ) @ C ) ) > ( product_prod @ ( coinductive_llist @ A ) @ C ) )
          @ ^ [Xs: coinductive_llist @ A,B4: B,F4: B > ( product_prod @ ( coinductive_llist @ A ) @ C )] : ( product_apfst @ ( coinductive_llist @ A ) @ ( coinductive_llist @ A ) @ C @ ( coinductive_lappend @ A @ Xs ) @ ( F4 @ B4 ) ) ) ) ) ).

% tappend_def
thf(fact_150_apfst__id,axiom,
    ! [B: $tType,A: $tType] :
      ( ( product_apfst @ A @ A @ B @ ( id @ A ) )
      = ( id @ ( product_prod @ A @ B ) ) ) ).

% apfst_id
thf(fact_151_tllist__all2__transfer,axiom,
    ! [D: $tType,C: $tType,B: $tType,A: $tType] :
      ( bNF_rel_fun @ ( A > B > $o ) @ ( A > B > $o ) @ ( ( C > D > $o ) > ( product_prod @ ( coinductive_llist @ A ) @ C ) > ( product_prod @ ( coinductive_llist @ B ) @ D ) > $o ) @ ( ( C > D > $o ) > ( tLList446370796tllist @ A @ C ) > ( tLList446370796tllist @ B @ D ) > $o )
      @ ^ [Y7: A > B > $o,Z2: A > B > $o] : Y7 = Z2
      @ ( bNF_rel_fun @ ( C > D > $o ) @ ( C > D > $o ) @ ( ( product_prod @ ( coinductive_llist @ A ) @ C ) > ( product_prod @ ( coinductive_llist @ B ) @ D ) > $o ) @ ( ( tLList446370796tllist @ A @ C ) > ( tLList446370796tllist @ B @ D ) > $o )
        @ ^ [Y7: C > D > $o,Z2: C > D > $o] : Y7 = Z2
        @ ( bNF_rel_fun @ ( product_prod @ ( coinductive_llist @ A ) @ C ) @ ( tLList446370796tllist @ A @ C ) @ ( ( product_prod @ ( coinductive_llist @ B ) @ D ) > $o ) @ ( ( tLList446370796tllist @ B @ D ) > $o )
          @ ( tLList1832236142tllist @ A @ A @ C @ C
            @ ^ [Y7: A,Z2: A] : Y7 = Z2
            @ ^ [Y7: C,Z2: C] : Y7 = Z2 )
          @ ( bNF_rel_fun @ ( product_prod @ ( coinductive_llist @ B ) @ D ) @ ( tLList446370796tllist @ B @ D ) @ $o @ $o
            @ ( tLList1832236142tllist @ B @ B @ D @ D
              @ ^ [Y7: B,Z2: B] : Y7 = Z2
              @ ^ [Y7: D,Z2: D] : Y7 = Z2 )
            @ ^ [Y7: $o,Z2: $o] : Y7 = Z2 ) ) )
      @ ^ [P3: A > B > $o,Q3: C > D > $o] :
          ( product_case_prod @ ( coinductive_llist @ A ) @ C @ ( ( product_prod @ ( coinductive_llist @ B ) @ D ) > $o )
          @ ^ [Xs: coinductive_llist @ A,B4: C] :
              ( product_case_prod @ ( coinductive_llist @ B ) @ D @ $o
              @ ^ [Ys: coinductive_llist @ B,B6: D] :
                  ( ( coindu1486289336t_all2 @ A @ B @ P3 @ Xs @ Ys )
                  & ( ( coinductive_lfinite @ A @ Xs )
                   => ( Q3 @ B4 @ B6 ) ) ) ) )
      @ ( tLList1380991092t_all2 @ A @ B @ C @ D ) ) ).

% tllist_all2_transfer
thf(fact_152_lfinite__lappend,axiom,
    ! [A: $tType,Xs2: coinductive_llist @ A,Ys2: coinductive_llist @ A] :
      ( ( coinductive_lfinite @ A @ ( coinductive_lappend @ A @ Xs2 @ Ys2 ) )
      = ( ( coinductive_lfinite @ A @ Xs2 )
        & ( coinductive_lfinite @ A @ Ys2 ) ) ) ).

% lfinite_lappend
thf(fact_153_apfst__conv,axiom,
    ! [C: $tType,A: $tType,B: $tType,F: C > A,X: C,Y3: B] :
      ( ( product_apfst @ C @ A @ B @ F @ ( product_Pair @ C @ B @ X @ Y3 ) )
      = ( product_Pair @ A @ B @ ( F @ X ) @ Y3 ) ) ).

% apfst_conv
thf(fact_154_tllist_Orel__inject_I2_J,axiom,
    ! [A: $tType,B: $tType,D: $tType,C: $tType,R1: A > C > $o,R22: B > D > $o,X21: A,X222: tLList446370796tllist @ A @ B,Y21: C,Y22: tLList446370796tllist @ C @ D] :
      ( ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R22 @ ( tLList1992840728_TCons @ A @ B @ X21 @ X222 ) @ ( tLList1992840728_TCons @ C @ D @ Y21 @ Y22 ) )
      = ( ( R1 @ X21 @ Y21 )
        & ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R22 @ X222 @ Y22 ) ) ) ).

% tllist.rel_inject(2)
thf(fact_155_lfilter__lappend__lfinite,axiom,
    ! [A: $tType,Xs2: coinductive_llist @ A,P2: A > $o,Ys2: coinductive_llist @ A] :
      ( ( coinductive_lfinite @ A @ Xs2 )
     => ( ( coinductive_lfilter @ A @ P2 @ ( coinductive_lappend @ A @ Xs2 @ Ys2 ) )
        = ( coinductive_lappend @ A @ ( coinductive_lfilter @ A @ P2 @ Xs2 ) @ ( coinductive_lfilter @ A @ P2 @ Ys2 ) ) ) ) ).

% lfilter_lappend_lfinite
thf(fact_156_lconcat__lappend,axiom,
    ! [A: $tType,Xss2: coinductive_llist @ ( coinductive_llist @ A ),Yss: coinductive_llist @ ( coinductive_llist @ A )] :
      ( ( coinductive_lfinite @ ( coinductive_llist @ A ) @ Xss2 )
     => ( ( coinductive_lconcat @ A @ ( coinductive_lappend @ ( coinductive_llist @ A ) @ Xss2 @ Yss ) )
        = ( coinductive_lappend @ A @ ( coinductive_lconcat @ A @ Xss2 ) @ ( coinductive_lconcat @ A @ Yss ) ) ) ) ).

% lconcat_lappend
thf(fact_157_tllist_Octr__transfer_I2_J,axiom,
    ! [A: $tType,B: $tType,D: $tType,C: $tType,R1: A > C > $o,R22: B > D > $o] : ( bNF_rel_fun @ A @ C @ ( ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ A @ B ) ) @ ( ( tLList446370796tllist @ C @ D ) > ( tLList446370796tllist @ C @ D ) ) @ R1 @ ( bNF_rel_fun @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ C @ D ) @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ C @ D ) @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R22 ) @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R22 ) ) @ ( tLList1992840728_TCons @ A @ B ) @ ( tLList1992840728_TCons @ C @ D ) ) ).

% tllist.ctr_transfer(2)
thf(fact_158_lappend__transfer,axiom,
    ! [A: $tType,B: $tType,A7: A > B > $o] : ( bNF_rel_fun @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) @ ( ( coinductive_llist @ B ) > ( coinductive_llist @ B ) ) @ ( coindu1486289336t_all2 @ A @ B @ A7 ) @ ( bNF_rel_fun @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ ( coindu1486289336t_all2 @ A @ B @ A7 ) @ ( coindu1486289336t_all2 @ A @ B @ A7 ) ) @ ( coinductive_lappend @ A ) @ ( coinductive_lappend @ B ) ) ).

% lappend_transfer
thf(fact_159_lfinite__transfer,axiom,
    ! [A: $tType,B: $tType,A7: A > B > $o] :
      ( bNF_rel_fun @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ $o @ $o @ ( coindu1486289336t_all2 @ A @ B @ A7 )
      @ ^ [Y7: $o,Z2: $o] : Y7 = Z2
      @ ( coinductive_lfinite @ A )
      @ ( coinductive_lfinite @ B ) ) ).

% lfinite_transfer
thf(fact_160_lconcat__transfer,axiom,
    ! [A: $tType,B: $tType,A7: A > B > $o] : ( bNF_rel_fun @ ( coinductive_llist @ ( coinductive_llist @ A ) ) @ ( coinductive_llist @ ( coinductive_llist @ B ) ) @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ ( coindu1486289336t_all2 @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ ( coindu1486289336t_all2 @ A @ B @ A7 ) ) @ ( coindu1486289336t_all2 @ A @ B @ A7 ) @ ( coinductive_lconcat @ A ) @ ( coinductive_lconcat @ B ) ) ).

% lconcat_transfer
thf(fact_161_tllist_Orel__intros_I2_J,axiom,
    ! [A: $tType,B: $tType,D: $tType,C: $tType,R1: A > C > $o,X21: A,Y21: C,R22: B > D > $o,X222: tLList446370796tllist @ A @ B,Y22: tLList446370796tllist @ C @ D] :
      ( ( R1 @ X21 @ Y21 )
     => ( ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R22 @ X222 @ Y22 )
       => ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R22 @ ( tLList1992840728_TCons @ A @ B @ X21 @ X222 ) @ ( tLList1992840728_TCons @ C @ D @ Y21 @ Y22 ) ) ) ) ).

% tllist.rel_intros(2)
thf(fact_162_llist__all2__lfiniteD,axiom,
    ! [A: $tType,B: $tType,P2: A > B > $o,Xs2: coinductive_llist @ A,Ys2: coinductive_llist @ B] :
      ( ( coindu1486289336t_all2 @ A @ B @ P2 @ Xs2 @ Ys2 )
     => ( ( coinductive_lfinite @ A @ Xs2 )
        = ( coinductive_lfinite @ B @ Ys2 ) ) ) ).

% llist_all2_lfiniteD
thf(fact_163_llist__all2__lconcatI,axiom,
    ! [A: $tType,B: $tType,A7: A > B > $o,Xss2: coinductive_llist @ ( coinductive_llist @ A ),Yss: coinductive_llist @ ( coinductive_llist @ B )] :
      ( ( coindu1486289336t_all2 @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ ( coindu1486289336t_all2 @ A @ B @ A7 ) @ Xss2 @ Yss )
     => ( coindu1486289336t_all2 @ A @ B @ A7 @ ( coinductive_lconcat @ A @ Xss2 ) @ ( coinductive_lconcat @ B @ Yss ) ) ) ).

% llist_all2_lconcatI
thf(fact_164_llist__all2__lappendI,axiom,
    ! [A: $tType,B: $tType,P2: A > B > $o,Xs2: coinductive_llist @ A,Ys2: coinductive_llist @ B,Xs3: coinductive_llist @ A,Ys3: coinductive_llist @ B] :
      ( ( coindu1486289336t_all2 @ A @ B @ P2 @ Xs2 @ Ys2 )
     => ( ( ( coinductive_lfinite @ A @ Xs2 )
         => ( ( coinductive_lfinite @ B @ Ys2 )
           => ( coindu1486289336t_all2 @ A @ B @ P2 @ Xs3 @ Ys3 ) ) )
       => ( coindu1486289336t_all2 @ A @ B @ P2 @ ( coinductive_lappend @ A @ Xs2 @ Xs3 ) @ ( coinductive_lappend @ B @ Ys2 @ Ys3 ) ) ) ) ).

% llist_all2_lappendI
thf(fact_165_lappend__inf,axiom,
    ! [A: $tType,Xs2: coinductive_llist @ A,Ys2: coinductive_llist @ A] :
      ( ~ ( coinductive_lfinite @ A @ Xs2 )
     => ( ( coinductive_lappend @ A @ Xs2 @ Ys2 )
        = Xs2 ) ) ).

% lappend_inf
thf(fact_166_llist__all2__lfilterI,axiom,
    ! [A: $tType,B: $tType,P2: A > B > $o,Xs2: coinductive_llist @ A,Ys2: coinductive_llist @ B,Q1: A > $o,Q22: B > $o] :
      ( ( coindu1486289336t_all2 @ A @ B @ P2 @ Xs2 @ Ys2 )
     => ( ! [X2: A,Y: B] :
            ( ( P2 @ X2 @ Y )
           => ( ( Q1 @ X2 )
              = ( Q22 @ Y ) ) )
       => ( coindu1486289336t_all2 @ A @ B @ P2 @ ( coinductive_lfilter @ A @ Q1 @ Xs2 ) @ ( coinductive_lfilter @ B @ Q22 @ Ys2 ) ) ) ) ).

% llist_all2_lfilterI
thf(fact_167_lappend__assoc,axiom,
    ! [A: $tType,Xs2: coinductive_llist @ A,Ys2: coinductive_llist @ A,Zs2: coinductive_llist @ A] :
      ( ( coinductive_lappend @ A @ ( coinductive_lappend @ A @ Xs2 @ Ys2 ) @ Zs2 )
      = ( coinductive_lappend @ A @ Xs2 @ ( coinductive_lappend @ A @ Ys2 @ Zs2 ) ) ) ).

% lappend_assoc
thf(fact_168_llist__all2__rsp,axiom,
    ! [A: $tType,B: $tType,R: A > B > $o,S: A > A > $o,T2: B > B > $o,X: coinductive_llist @ A,Y3: coinductive_llist @ B,A3: coinductive_llist @ A,B3: coinductive_llist @ B] :
      ( ! [X2: A,Y: B] :
          ( ( R @ X2 @ Y )
         => ! [A2: A,B2: B] :
              ( ( R @ A2 @ B2 )
             => ( ( S @ X2 @ A2 )
                = ( T2 @ Y @ B2 ) ) ) )
     => ( ( coindu1486289336t_all2 @ A @ B @ R @ X @ Y3 )
       => ( ( coindu1486289336t_all2 @ A @ B @ R @ A3 @ B3 )
         => ( ( coindu1486289336t_all2 @ A @ A @ S @ X @ A3 )
            = ( coindu1486289336t_all2 @ B @ B @ T2 @ Y3 @ B3 ) ) ) ) ) ).

% llist_all2_rsp
thf(fact_169_llist__all2__conj,axiom,
    ! [A: $tType,B: $tType,P2: A > B > $o,Q: A > B > $o,Xs2: coinductive_llist @ A,Ys2: coinductive_llist @ B] :
      ( ( coindu1486289336t_all2 @ A @ B
        @ ^ [X3: A,Y4: B] :
            ( ( P2 @ X3 @ Y4 )
            & ( Q @ X3 @ Y4 ) )
        @ Xs2
        @ Ys2 )
      = ( ( coindu1486289336t_all2 @ A @ B @ P2 @ Xs2 @ Ys2 )
        & ( coindu1486289336t_all2 @ A @ B @ Q @ Xs2 @ Ys2 ) ) ) ).

% llist_all2_conj
thf(fact_170_llist__all2__mono,axiom,
    ! [A: $tType,B: $tType,P2: A > B > $o,Xs2: coinductive_llist @ A,Ys2: coinductive_llist @ B,P4: A > B > $o] :
      ( ( coindu1486289336t_all2 @ A @ B @ P2 @ Xs2 @ Ys2 )
     => ( ! [X2: A,Y: B] :
            ( ( P2 @ X2 @ Y )
           => ( P4 @ X2 @ Y ) )
       => ( coindu1486289336t_all2 @ A @ B @ P4 @ Xs2 @ Ys2 ) ) ) ).

% llist_all2_mono
thf(fact_171_llist_Orel__eq,axiom,
    ! [A: $tType] :
      ( ( coindu1486289336t_all2 @ A @ A
        @ ^ [Y7: A,Z2: A] : Y7 = Z2 )
      = ( ^ [Y7: coinductive_llist @ A,Z2: coinductive_llist @ A] : Y7 = Z2 ) ) ).

% llist.rel_eq
thf(fact_172_llist_Orel__refl,axiom,
    ! [B: $tType,Ra2: B > B > $o,X: coinductive_llist @ B] :
      ( ! [X2: B] : ( Ra2 @ X2 @ X2 )
     => ( coindu1486289336t_all2 @ B @ B @ Ra2 @ X @ X ) ) ).

% llist.rel_refl
thf(fact_173_tllist_Orel__refl,axiom,
    ! [D: $tType,C: $tType,R1a: C > C > $o,R2a: D > D > $o,X: tLList446370796tllist @ C @ D] :
      ( ! [X2: C] : ( R1a @ X2 @ X2 )
     => ( ! [X2: D] : ( R2a @ X2 @ X2 )
       => ( tLList1380991092t_all2 @ C @ C @ D @ D @ R1a @ R2a @ X @ X ) ) ) ).

% tllist.rel_refl
thf(fact_174_tllist_Orel__eq,axiom,
    ! [B: $tType,A: $tType] :
      ( ( tLList1380991092t_all2 @ A @ A @ B @ B
        @ ^ [Y7: A,Z2: A] : Y7 = Z2
        @ ^ [Y7: B,Z2: B] : Y7 = Z2 )
      = ( ^ [Y7: tLList446370796tllist @ A @ B,Z2: tLList446370796tllist @ A @ B] : Y7 = Z2 ) ) ).

% tllist.rel_eq
thf(fact_175_tllist_Orel__map_I1_J,axiom,
    ! [A: $tType,B: $tType,E: $tType,F2: $tType,D: $tType,C: $tType,S1b: E > C > $o,S2b: F2 > D > $o,I1: A > E,I2: B > F2,X: tLList446370796tllist @ A @ B,Y3: tLList446370796tllist @ C @ D] :
      ( ( tLList1380991092t_all2 @ E @ C @ F2 @ D @ S1b @ S2b @ ( tLList1669959861e_tmap @ A @ E @ B @ F2 @ I1 @ I2 @ X ) @ Y3 )
      = ( tLList1380991092t_all2 @ A @ C @ B @ D
        @ ^ [X3: A] : ( S1b @ ( I1 @ X3 ) )
        @ ^ [X3: B] : ( S2b @ ( I2 @ X3 ) )
        @ X
        @ Y3 ) ) ).

% tllist.rel_map(1)
thf(fact_176_tllist_Orel__map_I2_J,axiom,
    ! [A: $tType,B: $tType,E: $tType,F2: $tType,D: $tType,C: $tType,S1a: A > E > $o,S2a: B > F2 > $o,X: tLList446370796tllist @ A @ B,G1: C > E,G22: D > F2,Y3: tLList446370796tllist @ C @ D] :
      ( ( tLList1380991092t_all2 @ A @ E @ B @ F2 @ S1a @ S2a @ X @ ( tLList1669959861e_tmap @ C @ E @ D @ F2 @ G1 @ G22 @ Y3 ) )
      = ( tLList1380991092t_all2 @ A @ C @ B @ D
        @ ^ [X3: A,Y4: C] : ( S1a @ X3 @ ( G1 @ Y4 ) )
        @ ^ [X3: B,Y4: D] : ( S2a @ X3 @ ( G22 @ Y4 ) )
        @ X
        @ Y3 ) ) ).

% tllist.rel_map(2)
thf(fact_177_tllist_Orel__reflp,axiom,
    ! [A: $tType,B: $tType,R1: A > A > $o,R22: B > B > $o] :
      ( ( reflp @ A @ R1 )
     => ( ( reflp @ B @ R22 )
       => ( reflp @ ( tLList446370796tllist @ A @ B ) @ ( tLList1380991092t_all2 @ A @ A @ B @ B @ R1 @ R22 ) ) ) ) ).

% tllist.rel_reflp
thf(fact_178_llist_Orel__reflp,axiom,
    ! [A: $tType,R: A > A > $o] :
      ( ( reflp @ A @ R )
     => ( reflp @ ( coinductive_llist @ A ) @ ( coindu1486289336t_all2 @ A @ A @ R ) ) ) ).

% llist.rel_reflp
thf(fact_179_apsnd__apfst__commute,axiom,
    ! [A: $tType,B: $tType,C: $tType,D: $tType,F: C > B,G3: D > A,P: product_prod @ D @ C] :
      ( ( product_apsnd @ C @ B @ A @ F @ ( product_apfst @ D @ A @ C @ G3 @ P ) )
      = ( product_apfst @ D @ A @ B @ G3 @ ( product_apsnd @ C @ B @ D @ F @ P ) ) ) ).

% apsnd_apfst_commute
thf(fact_180_llist__all2__transfer,axiom,
    ! [A: $tType,B: $tType,R: A > B > $o] :
      ( bNF_rel_fun @ ( A > A > $o ) @ ( B > B > $o ) @ ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) > $o ) @ ( ( coinductive_llist @ B ) > ( coinductive_llist @ B ) > $o )
      @ ( bNF_rel_fun @ A @ B @ ( A > $o ) @ ( B > $o ) @ R
        @ ( bNF_rel_fun @ A @ B @ $o @ $o @ R
          @ ^ [Y7: $o,Z2: $o] : Y7 = Z2 ) )
      @ ( bNF_rel_fun @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ ( ( coinductive_llist @ A ) > $o ) @ ( ( coinductive_llist @ B ) > $o ) @ ( coindu1486289336t_all2 @ A @ B @ R )
        @ ( bNF_rel_fun @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ $o @ $o @ ( coindu1486289336t_all2 @ A @ B @ R )
          @ ^ [Y7: $o,Z2: $o] : Y7 = Z2 ) )
      @ ( coindu1486289336t_all2 @ A @ A )
      @ ( coindu1486289336t_all2 @ B @ B ) ) ).

% llist_all2_transfer
thf(fact_181_llist_Orel__transfer,axiom,
    ! [A: $tType,B: $tType,D: $tType,C: $tType,Sa: A > C > $o,Sc: B > D > $o] :
      ( bNF_rel_fun @ ( A > B > $o ) @ ( C > D > $o ) @ ( ( coinductive_llist @ A ) > ( coinductive_llist @ B ) > $o ) @ ( ( coinductive_llist @ C ) > ( coinductive_llist @ D ) > $o )
      @ ( bNF_rel_fun @ A @ C @ ( B > $o ) @ ( D > $o ) @ Sa
        @ ( bNF_rel_fun @ B @ D @ $o @ $o @ Sc
          @ ^ [Y7: $o,Z2: $o] : Y7 = Z2 ) )
      @ ( bNF_rel_fun @ ( coinductive_llist @ A ) @ ( coinductive_llist @ C ) @ ( ( coinductive_llist @ B ) > $o ) @ ( ( coinductive_llist @ D ) > $o ) @ ( coindu1486289336t_all2 @ A @ C @ Sa )
        @ ( bNF_rel_fun @ ( coinductive_llist @ B ) @ ( coinductive_llist @ D ) @ $o @ $o @ ( coindu1486289336t_all2 @ B @ D @ Sc )
          @ ^ [Y7: $o,Z2: $o] : Y7 = Z2 ) )
      @ ( coindu1486289336t_all2 @ A @ B )
      @ ( coindu1486289336t_all2 @ C @ D ) ) ).

% llist.rel_transfer
thf(fact_182_lfilter__transfer,axiom,
    ! [A: $tType,B: $tType,A7: A > B > $o] :
      ( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) @ ( ( coinductive_llist @ B ) > ( coinductive_llist @ B ) )
      @ ( bNF_rel_fun @ A @ B @ $o @ $o @ A7
        @ ^ [Y7: $o,Z2: $o] : Y7 = Z2 )
      @ ( bNF_rel_fun @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ ( coindu1486289336t_all2 @ A @ B @ A7 ) @ ( coindu1486289336t_all2 @ A @ B @ A7 ) )
      @ ( coinductive_lfilter @ A )
      @ ( coinductive_lfilter @ B ) ) ).

% lfilter_transfer
thf(fact_183_tllist_Omap__transfer,axiom,
    ! [A: $tType,C: $tType,B: $tType,D: $tType,L2: $tType,J: $tType,K: $tType,I: $tType,R1b: A > I > $o,S1d: C > K > $o,R2b: B > J > $o,S2d: D > L2 > $o] : ( bNF_rel_fun @ ( A > C ) @ ( I > K ) @ ( ( B > D ) > ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ C @ D ) ) @ ( ( J > L2 ) > ( tLList446370796tllist @ I @ J ) > ( tLList446370796tllist @ K @ L2 ) ) @ ( bNF_rel_fun @ A @ I @ C @ K @ R1b @ S1d ) @ ( bNF_rel_fun @ ( B > D ) @ ( J > L2 ) @ ( ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ C @ D ) ) @ ( ( tLList446370796tllist @ I @ J ) > ( tLList446370796tllist @ K @ L2 ) ) @ ( bNF_rel_fun @ B @ J @ D @ L2 @ R2b @ S2d ) @ ( bNF_rel_fun @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ I @ J ) @ ( tLList446370796tllist @ C @ D ) @ ( tLList446370796tllist @ K @ L2 ) @ ( tLList1380991092t_all2 @ A @ I @ B @ J @ R1b @ R2b ) @ ( tLList1380991092t_all2 @ C @ K @ D @ L2 @ S1d @ S2d ) ) ) @ ( tLList1669959861e_tmap @ A @ C @ B @ D ) @ ( tLList1669959861e_tmap @ I @ K @ J @ L2 ) ) ).

% tllist.map_transfer
thf(fact_184_tllist_Orel__transfer,axiom,
    ! [A: $tType,C: $tType,B: $tType,D: $tType,H2: $tType,F2: $tType,G: $tType,E: $tType,S1a: A > E > $o,S1c: C > G > $o,S2a: B > F2 > $o,S2c: D > H2 > $o] :
      ( bNF_rel_fun @ ( A > C > $o ) @ ( E > G > $o ) @ ( ( B > D > $o ) > ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ C @ D ) > $o ) @ ( ( F2 > H2 > $o ) > ( tLList446370796tllist @ E @ F2 ) > ( tLList446370796tllist @ G @ H2 ) > $o )
      @ ( bNF_rel_fun @ A @ E @ ( C > $o ) @ ( G > $o ) @ S1a
        @ ( bNF_rel_fun @ C @ G @ $o @ $o @ S1c
          @ ^ [Y7: $o,Z2: $o] : Y7 = Z2 ) )
      @ ( bNF_rel_fun @ ( B > D > $o ) @ ( F2 > H2 > $o ) @ ( ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ C @ D ) > $o ) @ ( ( tLList446370796tllist @ E @ F2 ) > ( tLList446370796tllist @ G @ H2 ) > $o )
        @ ( bNF_rel_fun @ B @ F2 @ ( D > $o ) @ ( H2 > $o ) @ S2a
          @ ( bNF_rel_fun @ D @ H2 @ $o @ $o @ S2c
            @ ^ [Y7: $o,Z2: $o] : Y7 = Z2 ) )
        @ ( bNF_rel_fun @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ E @ F2 ) @ ( ( tLList446370796tllist @ C @ D ) > $o ) @ ( ( tLList446370796tllist @ G @ H2 ) > $o ) @ ( tLList1380991092t_all2 @ A @ E @ B @ F2 @ S1a @ S2a )
          @ ( bNF_rel_fun @ ( tLList446370796tllist @ C @ D ) @ ( tLList446370796tllist @ G @ H2 ) @ $o @ $o @ ( tLList1380991092t_all2 @ C @ G @ D @ H2 @ S1c @ S2c )
            @ ^ [Y7: $o,Z2: $o] : Y7 = Z2 ) ) )
      @ ( tLList1380991092t_all2 @ A @ C @ B @ D )
      @ ( tLList1380991092t_all2 @ E @ G @ F2 @ H2 ) ) ).

% tllist.rel_transfer
thf(fact_185_lfilter__eq__lappend__lfiniteD,axiom,
    ! [A: $tType,P2: A > $o,Xs2: coinductive_llist @ A,Ys2: coinductive_llist @ A,Zs2: coinductive_llist @ A] :
      ( ( ( coinductive_lfilter @ A @ P2 @ Xs2 )
        = ( coinductive_lappend @ A @ Ys2 @ Zs2 ) )
     => ( ( coinductive_lfinite @ A @ Ys2 )
       => ? [Us: coinductive_llist @ A,Vs: coinductive_llist @ A] :
            ( ( Xs2
              = ( coinductive_lappend @ A @ Us @ Vs ) )
            & ( coinductive_lfinite @ A @ Us )
            & ( Ys2
              = ( coinductive_lfilter @ A @ P2 @ Us ) )
            & ( Zs2
              = ( coinductive_lfilter @ A @ P2 @ Vs ) ) ) ) ) ).

% lfilter_eq_lappend_lfiniteD
thf(fact_186_tllist_Ocase__transfer,axiom,
    ! [B: $tType,E: $tType,A: $tType,C: $tType,F2: $tType,D: $tType,R22: B > D > $o,S: E > F2 > $o,R1: A > C > $o] : ( bNF_rel_fun @ ( B > E ) @ ( D > F2 ) @ ( ( A > ( tLList446370796tllist @ A @ B ) > E ) > ( tLList446370796tllist @ A @ B ) > E ) @ ( ( C > ( tLList446370796tllist @ C @ D ) > F2 ) > ( tLList446370796tllist @ C @ D ) > F2 ) @ ( bNF_rel_fun @ B @ D @ E @ F2 @ R22 @ S ) @ ( bNF_rel_fun @ ( A > ( tLList446370796tllist @ A @ B ) > E ) @ ( C > ( tLList446370796tllist @ C @ D ) > F2 ) @ ( ( tLList446370796tllist @ A @ B ) > E ) @ ( ( tLList446370796tllist @ C @ D ) > F2 ) @ ( bNF_rel_fun @ A @ C @ ( ( tLList446370796tllist @ A @ B ) > E ) @ ( ( tLList446370796tllist @ C @ D ) > F2 ) @ R1 @ ( bNF_rel_fun @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ C @ D ) @ E @ F2 @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R22 ) @ S ) ) @ ( bNF_rel_fun @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ C @ D ) @ E @ F2 @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R22 ) @ S ) ) @ ( tLList200813139tllist @ B @ E @ A ) @ ( tLList200813139tllist @ D @ F2 @ C ) ) ).

% tllist.case_transfer
thf(fact_187_tllist_OQuotient,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,R1: A > A > $o,Abs1: A > C,Rep1: C > A,T1: A > C > $o,R22: B > B > $o,Abs22: B > D,Rep22: D > B,T22: B > D > $o] :
      ( ( quotient @ A @ C @ R1 @ Abs1 @ Rep1 @ T1 )
     => ( ( quotient @ B @ D @ R22 @ Abs22 @ Rep22 @ T22 )
       => ( quotient @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ C @ D ) @ ( tLList1380991092t_all2 @ A @ A @ B @ B @ R1 @ R22 ) @ ( tLList1669959861e_tmap @ A @ C @ B @ D @ Abs1 @ Abs22 ) @ ( tLList1669959861e_tmap @ C @ A @ D @ B @ Rep1 @ Rep22 ) @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ T1 @ T22 ) ) ) ) ).

% tllist.Quotient
thf(fact_188_tappend_Otransfer,axiom,
    ! [C: $tType,B: $tType,A: $tType] :
      ( bNF_rel_fun @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( tLList446370796tllist @ A @ B ) @ ( ( B > ( product_prod @ ( coinductive_llist @ A ) @ C ) ) > ( product_prod @ ( coinductive_llist @ A ) @ C ) ) @ ( ( B > ( tLList446370796tllist @ A @ C ) ) > ( tLList446370796tllist @ A @ C ) )
      @ ( tLList1832236142tllist @ A @ A @ B @ B
        @ ^ [Y7: A,Z2: A] : Y7 = Z2
        @ ^ [Y7: B,Z2: B] : Y7 = Z2 )
      @ ( bNF_rel_fun @ ( B > ( product_prod @ ( coinductive_llist @ A ) @ C ) ) @ ( B > ( tLList446370796tllist @ A @ C ) ) @ ( product_prod @ ( coinductive_llist @ A ) @ C ) @ ( tLList446370796tllist @ A @ C )
        @ ( bNF_rel_fun @ B @ B @ ( product_prod @ ( coinductive_llist @ A ) @ C ) @ ( tLList446370796tllist @ A @ C )
          @ ^ [Y7: B,Z2: B] : Y7 = Z2
          @ ( tLList1832236142tllist @ A @ A @ C @ C
            @ ^ [Y7: A,Z2: A] : Y7 = Z2
            @ ^ [Y7: C,Z2: C] : Y7 = Z2 ) )
        @ ( tLList1832236142tllist @ A @ A @ C @ C
          @ ^ [Y7: A,Z2: A] : Y7 = Z2
          @ ^ [Y7: C,Z2: C] : Y7 = Z2 ) )
      @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( ( B > ( product_prod @ ( coinductive_llist @ A ) @ C ) ) > ( product_prod @ ( coinductive_llist @ A ) @ C ) )
        @ ^ [Xs: coinductive_llist @ A,B4: B,F4: B > ( product_prod @ ( coinductive_llist @ A ) @ C )] : ( product_apfst @ ( coinductive_llist @ A ) @ ( coinductive_llist @ A ) @ C @ ( coinductive_lappend @ A @ Xs ) @ ( F4 @ B4 ) ) )
      @ ( tLList192138471append @ A @ B @ C ) ) ).

% tappend.transfer
thf(fact_189_tappend_Orsp,axiom,
    ! [B: $tType,C: $tType,A: $tType] :
      ( bNF_rel_fun @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( ( B > ( product_prod @ ( coinductive_llist @ A ) @ C ) ) > ( product_prod @ ( coinductive_llist @ A ) @ C ) ) @ ( ( B > ( product_prod @ ( coinductive_llist @ A ) @ C ) ) > ( product_prod @ ( coinductive_llist @ A ) @ C ) )
      @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > $o )
        @ ^ [Xs: coinductive_llist @ A,A4: B] :
            ( product_case_prod @ ( coinductive_llist @ A ) @ B @ $o
            @ ^ [Ys: coinductive_llist @ A,B4: B] :
                ( ( Xs = Ys )
                & ( ( coinductive_lfinite @ A @ Ys )
                 => ( A4 = B4 ) ) ) ) )
      @ ( bNF_rel_fun @ ( B > ( product_prod @ ( coinductive_llist @ A ) @ C ) ) @ ( B > ( product_prod @ ( coinductive_llist @ A ) @ C ) ) @ ( product_prod @ ( coinductive_llist @ A ) @ C ) @ ( product_prod @ ( coinductive_llist @ A ) @ C )
        @ ( bNF_rel_fun @ B @ B @ ( product_prod @ ( coinductive_llist @ A ) @ C ) @ ( product_prod @ ( coinductive_llist @ A ) @ C )
          @ ^ [Y7: B,Z2: B] : Y7 = Z2
          @ ( product_case_prod @ ( coinductive_llist @ A ) @ C @ ( ( product_prod @ ( coinductive_llist @ A ) @ C ) > $o )
            @ ^ [Xs: coinductive_llist @ A,A4: C] :
                ( product_case_prod @ ( coinductive_llist @ A ) @ C @ $o
                @ ^ [Ys: coinductive_llist @ A,B4: C] :
                    ( ( Xs = Ys )
                    & ( ( coinductive_lfinite @ A @ Ys )
                     => ( A4 = B4 ) ) ) ) ) )
        @ ( product_case_prod @ ( coinductive_llist @ A ) @ C @ ( ( product_prod @ ( coinductive_llist @ A ) @ C ) > $o )
          @ ^ [Xs: coinductive_llist @ A,A4: C] :
              ( product_case_prod @ ( coinductive_llist @ A ) @ C @ $o
              @ ^ [Ys: coinductive_llist @ A,B4: C] :
                  ( ( Xs = Ys )
                  & ( ( coinductive_lfinite @ A @ Ys )
                   => ( A4 = B4 ) ) ) ) ) )
      @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( ( B > ( product_prod @ ( coinductive_llist @ A ) @ C ) ) > ( product_prod @ ( coinductive_llist @ A ) @ C ) )
        @ ^ [Xs: coinductive_llist @ A,B4: B,F4: B > ( product_prod @ ( coinductive_llist @ A ) @ C )] : ( product_apfst @ ( coinductive_llist @ A ) @ ( coinductive_llist @ A ) @ C @ ( coinductive_lappend @ A @ Xs ) @ ( F4 @ B4 ) ) )
      @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( ( B > ( product_prod @ ( coinductive_llist @ A ) @ C ) ) > ( product_prod @ ( coinductive_llist @ A ) @ C ) )
        @ ^ [Xs: coinductive_llist @ A,B4: B,F4: B > ( product_prod @ ( coinductive_llist @ A ) @ C )] : ( product_apfst @ ( coinductive_llist @ A ) @ ( coinductive_llist @ A ) @ C @ ( coinductive_lappend @ A @ Xs ) @ ( F4 @ B4 ) ) ) ) ).

% tappend.rsp
thf(fact_190_lappendt_Oabs__eq,axiom,
    ! [B: $tType,A: $tType,Xa: coinductive_llist @ A,X: product_prod @ ( coinductive_llist @ A ) @ B] :
      ( ( tLList98099029ppendt @ A @ B @ Xa
        @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( tLList446370796tllist @ A @ B )
          @ ^ [Xs: coinductive_llist @ A,A4: B] : ( tLList1672613558_llist @ B @ A @ A4 @ Xs )
          @ X ) )
      = ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( tLList446370796tllist @ A @ B )
        @ ^ [Xs: coinductive_llist @ A,A4: B] : ( tLList1672613558_llist @ B @ A @ A4 @ Xs )
        @ ( product_apfst @ ( coinductive_llist @ A ) @ ( coinductive_llist @ A ) @ B @ ( coinductive_lappend @ A @ Xa ) @ X ) ) ) ).

% lappendt.abs_eq
thf(fact_191_apfst__convE,axiom,
    ! [C: $tType,A: $tType,B: $tType,Q2: product_prod @ A @ B,F: C > A,P: product_prod @ C @ B] :
      ( ( Q2
        = ( product_apfst @ C @ A @ B @ F @ P ) )
     => ~ ! [X2: C,Y: B] :
            ( ( P
              = ( product_Pair @ C @ B @ X2 @ Y ) )
           => ( Q2
             != ( product_Pair @ A @ B @ ( F @ X2 ) @ Y ) ) ) ) ).

% apfst_convE
thf(fact_192_lappendt_Orsp,axiom,
    ! [B: $tType,A: $tType] :
      ( bNF_rel_fun @ ( coinductive_llist @ A ) @ ( coinductive_llist @ A ) @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) ) @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) )
      @ ^ [Y7: coinductive_llist @ A,Z2: coinductive_llist @ A] : Y7 = Z2
      @ ( bNF_rel_fun @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( product_prod @ ( coinductive_llist @ A ) @ B )
        @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > $o )
          @ ^ [Xs: coinductive_llist @ A,A4: B] :
              ( product_case_prod @ ( coinductive_llist @ A ) @ B @ $o
              @ ^ [Ys: coinductive_llist @ A,B4: B] :
                  ( ( Xs = Ys )
                  & ( ( coinductive_lfinite @ A @ Ys )
                   => ( A4 = B4 ) ) ) ) )
        @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > $o )
          @ ^ [Xs: coinductive_llist @ A,A4: B] :
              ( product_case_prod @ ( coinductive_llist @ A ) @ B @ $o
              @ ^ [Ys: coinductive_llist @ A,B4: B] :
                  ( ( Xs = Ys )
                  & ( ( coinductive_lfinite @ A @ Ys )
                   => ( A4 = B4 ) ) ) ) ) )
      @ ( comp @ ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) ) @ ( coinductive_llist @ A ) @ ( product_apfst @ ( coinductive_llist @ A ) @ ( coinductive_llist @ A ) @ B ) @ ( coinductive_lappend @ A ) )
      @ ( comp @ ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) ) @ ( coinductive_llist @ A ) @ ( product_apfst @ ( coinductive_llist @ A ) @ ( coinductive_llist @ A ) @ B ) @ ( coinductive_lappend @ A ) ) ) ).

% lappendt.rsp
thf(fact_193_fun_Orel__map_I1_J,axiom,
    ! [A: $tType,C: $tType,B: $tType,D: $tType,Sb: C > B > $o,I3: A > C,X: D > A,Y3: D > B] :
      ( ( bNF_rel_fun @ D @ D @ C @ B
        @ ^ [Y7: D,Z2: D] : Y7 = Z2
        @ Sb
        @ ( comp @ A @ C @ D @ I3 @ X )
        @ Y3 )
      = ( bNF_rel_fun @ D @ D @ A @ B
        @ ^ [Y7: D,Z2: D] : Y7 = Z2
        @ ^ [X3: A] : ( Sb @ ( I3 @ X3 ) )
        @ X
        @ Y3 ) ) ).

% fun.rel_map(1)
thf(fact_194_fun_Orel__map_I2_J,axiom,
    ! [A: $tType,C: $tType,B: $tType,D: $tType,Sa: A > C > $o,X: D > A,G3: B > C,Y3: D > B] :
      ( ( bNF_rel_fun @ D @ D @ A @ C
        @ ^ [Y7: D,Z2: D] : Y7 = Z2
        @ Sa
        @ X
        @ ( comp @ B @ C @ D @ G3 @ Y3 ) )
      = ( bNF_rel_fun @ D @ D @ A @ B
        @ ^ [Y7: D,Z2: D] : Y7 = Z2
        @ ^ [X3: A,Y4: B] : ( Sa @ X3 @ ( G3 @ Y4 ) )
        @ X
        @ Y3 ) ) ).

% fun.rel_map(2)
thf(fact_195_apfst__compose,axiom,
    ! [C: $tType,A: $tType,B: $tType,D: $tType,F: C > A,G3: D > C,X: product_prod @ D @ B] :
      ( ( product_apfst @ C @ A @ B @ F @ ( product_apfst @ D @ C @ B @ G3 @ X ) )
      = ( product_apfst @ D @ A @ B @ ( comp @ C @ A @ D @ F @ G3 ) @ X ) ) ).

% apfst_compose
thf(fact_196_pointfree__idE,axiom,
    ! [B: $tType,A: $tType,F: B > A,G3: A > B,X: A] :
      ( ( ( comp @ B @ A @ A @ F @ G3 )
        = ( id @ A ) )
     => ( ( F @ ( G3 @ X ) )
        = X ) ) ).

% pointfree_idE
thf(fact_197_fun_Omap__ident,axiom,
    ! [A: $tType,D: $tType,T4: D > A] :
      ( ( comp @ A @ A @ D
        @ ^ [X3: A] : X3
        @ T4 )
      = T4 ) ).

% fun.map_ident
thf(fact_198_type__copy__map__cong0,axiom,
    ! [B: $tType,D: $tType,E: $tType,A: $tType,C: $tType,M: B > A,G3: C > B,X: C,N: D > A,H: C > D,F: A > E] :
      ( ( ( M @ ( G3 @ X ) )
        = ( N @ ( H @ X ) ) )
     => ( ( comp @ B @ E @ C @ ( comp @ A @ E @ B @ F @ M ) @ G3 @ X )
        = ( comp @ D @ E @ C @ ( comp @ A @ E @ D @ F @ N ) @ H @ X ) ) ) ).

% type_copy_map_cong0
thf(fact_199_comp__cong,axiom,
    ! [C: $tType,B: $tType,D: $tType,A: $tType,E: $tType,F: B > A,G3: C > B,X: C,F7: D > A,G5: E > D,X6: E] :
      ( ( ( F @ ( G3 @ X ) )
        = ( F7 @ ( G5 @ X6 ) ) )
     => ( ( comp @ B @ A @ C @ F @ G3 @ X )
        = ( comp @ D @ A @ E @ F7 @ G5 @ X6 ) ) ) ).

% comp_cong
thf(fact_200_rewriteR__comp__comp2,axiom,
    ! [C: $tType,B: $tType,E: $tType,D: $tType,A: $tType,G3: C > B,H: A > C,R12: D > B,R23: A > D,F: B > E,L3: D > E] :
      ( ( ( comp @ C @ B @ A @ G3 @ H )
        = ( comp @ D @ B @ A @ R12 @ R23 ) )
     => ( ( ( comp @ B @ E @ D @ F @ R12 )
          = L3 )
       => ( ( comp @ C @ E @ A @ ( comp @ B @ E @ C @ F @ G3 ) @ H )
          = ( comp @ D @ E @ A @ L3 @ R23 ) ) ) ) ).

% rewriteR_comp_comp2
thf(fact_201_rewriteL__comp__comp2,axiom,
    ! [A: $tType,C: $tType,B: $tType,D: $tType,E: $tType,F: C > B,G3: A > C,L1: D > B,L22: A > D,H: E > A,R4: E > D] :
      ( ( ( comp @ C @ B @ A @ F @ G3 )
        = ( comp @ D @ B @ A @ L1 @ L22 ) )
     => ( ( ( comp @ A @ D @ E @ L22 @ H )
          = R4 )
       => ( ( comp @ C @ B @ E @ F @ ( comp @ A @ C @ E @ G3 @ H ) )
          = ( comp @ D @ B @ E @ L1 @ R4 ) ) ) ) ).

% rewriteL_comp_comp2
thf(fact_202_rewriteR__comp__comp,axiom,
    ! [C: $tType,D: $tType,B: $tType,A: $tType,G3: C > B,H: A > C,R4: A > B,F: B > D] :
      ( ( ( comp @ C @ B @ A @ G3 @ H )
        = R4 )
     => ( ( comp @ C @ D @ A @ ( comp @ B @ D @ C @ F @ G3 ) @ H )
        = ( comp @ B @ D @ A @ F @ R4 ) ) ) ).

% rewriteR_comp_comp
thf(fact_203_rewriteL__comp__comp,axiom,
    ! [C: $tType,B: $tType,A: $tType,D: $tType,F: C > B,G3: A > C,L3: A > B,H: D > A] :
      ( ( ( comp @ C @ B @ A @ F @ G3 )
        = L3 )
     => ( ( comp @ C @ B @ D @ F @ ( comp @ A @ C @ D @ G3 @ H ) )
        = ( comp @ A @ B @ D @ L3 @ H ) ) ) ).

% rewriteL_comp_comp
thf(fact_204_tllist_Omap__comp,axiom,
    ! [D: $tType,F2: $tType,E: $tType,C: $tType,B: $tType,A: $tType,G1: C > E,G22: D > F2,F1: A > C,F23: B > D,V: tLList446370796tllist @ A @ B] :
      ( ( tLList1669959861e_tmap @ C @ E @ D @ F2 @ G1 @ G22 @ ( tLList1669959861e_tmap @ A @ C @ B @ D @ F1 @ F23 @ V ) )
      = ( tLList1669959861e_tmap @ A @ E @ B @ F2 @ ( comp @ C @ E @ A @ G1 @ F1 ) @ ( comp @ D @ F2 @ B @ G22 @ F23 ) @ V ) ) ).

% tllist.map_comp
thf(fact_205_apsnd__compose,axiom,
    ! [C: $tType,B: $tType,D: $tType,A: $tType,F: C > B,G3: D > C,X: product_prod @ A @ D] :
      ( ( product_apsnd @ C @ B @ A @ F @ ( product_apsnd @ D @ C @ A @ G3 @ X ) )
      = ( product_apsnd @ D @ B @ A @ ( comp @ C @ B @ D @ F @ G3 ) @ X ) ) ).

% apsnd_compose
thf(fact_206_comp__transfer,axiom,
    ! [A: $tType,B: $tType,E: $tType,F2: $tType,D: $tType,C: $tType,B7: A > C > $o,C4: B > D > $o,A7: E > F2 > $o] : ( bNF_rel_fun @ ( A > B ) @ ( C > D ) @ ( ( E > A ) > E > B ) @ ( ( F2 > C ) > F2 > D ) @ ( bNF_rel_fun @ A @ C @ B @ D @ B7 @ C4 ) @ ( bNF_rel_fun @ ( E > A ) @ ( F2 > C ) @ ( E > B ) @ ( F2 > D ) @ ( bNF_rel_fun @ E @ F2 @ A @ C @ A7 @ B7 ) @ ( bNF_rel_fun @ E @ F2 @ B @ D @ A7 @ C4 ) ) @ ( comp @ A @ B @ E ) @ ( comp @ C @ D @ F2 ) ) ).

% comp_transfer
thf(fact_207_lappendt_Otransfer,axiom,
    ! [B: $tType,A: $tType] :
      ( bNF_rel_fun @ ( coinductive_llist @ A ) @ ( coinductive_llist @ A ) @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) ) @ ( ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ A @ B ) )
      @ ^ [Y7: coinductive_llist @ A,Z2: coinductive_llist @ A] : Y7 = Z2
      @ ( bNF_rel_fun @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( tLList446370796tllist @ A @ B ) @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( tLList446370796tllist @ A @ B )
        @ ( tLList1832236142tllist @ A @ A @ B @ B
          @ ^ [Y7: A,Z2: A] : Y7 = Z2
          @ ^ [Y7: B,Z2: B] : Y7 = Z2 )
        @ ( tLList1832236142tllist @ A @ A @ B @ B
          @ ^ [Y7: A,Z2: A] : Y7 = Z2
          @ ^ [Y7: B,Z2: B] : Y7 = Z2 ) )
      @ ( comp @ ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) ) @ ( coinductive_llist @ A ) @ ( product_apfst @ ( coinductive_llist @ A ) @ ( coinductive_llist @ A ) @ B ) @ ( coinductive_lappend @ A ) )
      @ ( tLList98099029ppendt @ A @ B ) ) ).

% lappendt.transfer
thf(fact_208_lappendt__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( tLList98099029ppendt @ A @ B )
      = ( map_fun @ ( coinductive_llist @ A ) @ ( coinductive_llist @ A ) @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) ) @ ( ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ A @ B ) ) @ ( id @ ( coinductive_llist @ A ) )
        @ ( map_fun @ ( tLList446370796tllist @ A @ B ) @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( tLList446370796tllist @ A @ B )
          @ ^ [Ys: tLList446370796tllist @ A @ B] : ( product_Pair @ ( coinductive_llist @ A ) @ B @ ( tLList798109904tllist @ A @ B @ Ys ) @ ( tLList2110128105rminal @ A @ B @ Ys ) )
          @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( tLList446370796tllist @ A @ B )
            @ ^ [Xs: coinductive_llist @ A,A4: B] : ( tLList1672613558_llist @ B @ A @ A4 @ Xs ) ) )
        @ ( comp @ ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) ) @ ( coinductive_llist @ A ) @ ( product_apfst @ ( coinductive_llist @ A ) @ ( coinductive_llist @ A ) @ B ) @ ( coinductive_lappend @ A ) ) ) ) ).

% lappendt_def
thf(fact_209_tllist_Ocorec__transfer,axiom,
    ! [E: $tType,B: $tType,A: $tType,C: $tType,D: $tType,F2: $tType,S: E > F2 > $o,R22: B > D > $o,R1: A > C > $o] :
      ( bNF_rel_fun @ ( E > $o ) @ ( F2 > $o ) @ ( ( E > B ) > ( E > A ) > ( E > $o ) > ( E > ( tLList446370796tllist @ A @ B ) ) > ( E > E ) > E > ( tLList446370796tllist @ A @ B ) ) @ ( ( F2 > D ) > ( F2 > C ) > ( F2 > $o ) > ( F2 > ( tLList446370796tllist @ C @ D ) ) > ( F2 > F2 ) > F2 > ( tLList446370796tllist @ C @ D ) )
      @ ( bNF_rel_fun @ E @ F2 @ $o @ $o @ S
        @ ^ [Y7: $o,Z2: $o] : Y7 = Z2 )
      @ ( bNF_rel_fun @ ( E > B ) @ ( F2 > D ) @ ( ( E > A ) > ( E > $o ) > ( E > ( tLList446370796tllist @ A @ B ) ) > ( E > E ) > E > ( tLList446370796tllist @ A @ B ) ) @ ( ( F2 > C ) > ( F2 > $o ) > ( F2 > ( tLList446370796tllist @ C @ D ) ) > ( F2 > F2 ) > F2 > ( tLList446370796tllist @ C @ D ) ) @ ( bNF_rel_fun @ E @ F2 @ B @ D @ S @ R22 )
        @ ( bNF_rel_fun @ ( E > A ) @ ( F2 > C ) @ ( ( E > $o ) > ( E > ( tLList446370796tllist @ A @ B ) ) > ( E > E ) > E > ( tLList446370796tllist @ A @ B ) ) @ ( ( F2 > $o ) > ( F2 > ( tLList446370796tllist @ C @ D ) ) > ( F2 > F2 ) > F2 > ( tLList446370796tllist @ C @ D ) ) @ ( bNF_rel_fun @ E @ F2 @ A @ C @ S @ R1 )
          @ ( bNF_rel_fun @ ( E > $o ) @ ( F2 > $o ) @ ( ( E > ( tLList446370796tllist @ A @ B ) ) > ( E > E ) > E > ( tLList446370796tllist @ A @ B ) ) @ ( ( F2 > ( tLList446370796tllist @ C @ D ) ) > ( F2 > F2 ) > F2 > ( tLList446370796tllist @ C @ D ) )
            @ ( bNF_rel_fun @ E @ F2 @ $o @ $o @ S
              @ ^ [Y7: $o,Z2: $o] : Y7 = Z2 )
            @ ( bNF_rel_fun @ ( E > ( tLList446370796tllist @ A @ B ) ) @ ( F2 > ( tLList446370796tllist @ C @ D ) ) @ ( ( E > E ) > E > ( tLList446370796tllist @ A @ B ) ) @ ( ( F2 > F2 ) > F2 > ( tLList446370796tllist @ C @ D ) ) @ ( bNF_rel_fun @ E @ F2 @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ C @ D ) @ S @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R22 ) ) @ ( bNF_rel_fun @ ( E > E ) @ ( F2 > F2 ) @ ( E > ( tLList446370796tllist @ A @ B ) ) @ ( F2 > ( tLList446370796tllist @ C @ D ) ) @ ( bNF_rel_fun @ E @ F2 @ E @ F2 @ S @ S ) @ ( bNF_rel_fun @ E @ F2 @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ C @ D ) @ S @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R22 ) ) ) ) ) ) )
      @ ( tLList1614408749tllist @ E @ B @ A )
      @ ( tLList1614408749tllist @ F2 @ D @ C ) ) ).

% tllist.corec_transfer
thf(fact_210_TCons__transfer,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,A7: A > B > $o,B7: C > D > $o] : ( bNF_rel_fun @ A @ B @ ( ( product_prod @ ( coinductive_llist @ A ) @ C ) > ( product_prod @ ( coinductive_llist @ A ) @ C ) ) @ ( ( tLList446370796tllist @ B @ D ) > ( tLList446370796tllist @ B @ D ) ) @ A7 @ ( bNF_rel_fun @ ( product_prod @ ( coinductive_llist @ A ) @ C ) @ ( tLList446370796tllist @ B @ D ) @ ( product_prod @ ( coinductive_llist @ A ) @ C ) @ ( tLList446370796tllist @ B @ D ) @ ( tLList1832236142tllist @ A @ B @ C @ D @ A7 @ B7 ) @ ( tLList1832236142tllist @ A @ B @ C @ D @ A7 @ B7 ) ) @ ( comp @ ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) @ ( ( product_prod @ ( coinductive_llist @ A ) @ C ) > ( product_prod @ ( coinductive_llist @ A ) @ C ) ) @ A @ ( product_apfst @ ( coinductive_llist @ A ) @ ( coinductive_llist @ A ) @ C ) @ ( coinductive_LCons @ A ) ) @ ( tLList1992840728_TCons @ B @ D ) ) ).

% TCons_transfer
thf(fact_211_llist_Oinject,axiom,
    ! [A: $tType,X21: A,X222: coinductive_llist @ A,Y21: A,Y22: coinductive_llist @ A] :
      ( ( ( coinductive_LCons @ A @ X21 @ X222 )
        = ( coinductive_LCons @ A @ Y21 @ Y22 ) )
      = ( ( X21 = Y21 )
        & ( X222 = Y22 ) ) ) ).

% llist.inject
thf(fact_212_llist__all2__LCons__LCons,axiom,
    ! [A: $tType,B: $tType,R: A > B > $o,X21: A,X222: coinductive_llist @ A,Y21: B,Y22: coinductive_llist @ B] :
      ( ( coindu1486289336t_all2 @ A @ B @ R @ ( coinductive_LCons @ A @ X21 @ X222 ) @ ( coinductive_LCons @ B @ Y21 @ Y22 ) )
      = ( ( R @ X21 @ Y21 )
        & ( coindu1486289336t_all2 @ A @ B @ R @ X222 @ Y22 ) ) ) ).

% llist_all2_LCons_LCons
thf(fact_213_lfinite__code_I2_J,axiom,
    ! [B: $tType,X: B,Xs2: coinductive_llist @ B] :
      ( ( coinductive_lfinite @ B @ ( coinductive_LCons @ B @ X @ Xs2 ) )
      = ( coinductive_lfinite @ B @ Xs2 ) ) ).

% lfinite_code(2)
thf(fact_214_lfinite__LCons,axiom,
    ! [A: $tType,X: A,Xs2: coinductive_llist @ A] :
      ( ( coinductive_lfinite @ A @ ( coinductive_LCons @ A @ X @ Xs2 ) )
      = ( coinductive_lfinite @ A @ Xs2 ) ) ).

% lfinite_LCons
thf(fact_215_lappend__code_I2_J,axiom,
    ! [A: $tType,Xa: A,X: coinductive_llist @ A,Ys2: coinductive_llist @ A] :
      ( ( coinductive_lappend @ A @ ( coinductive_LCons @ A @ Xa @ X ) @ Ys2 )
      = ( coinductive_LCons @ A @ Xa @ ( coinductive_lappend @ A @ X @ Ys2 ) ) ) ).

% lappend_code(2)
thf(fact_216_lfilter__LCons,axiom,
    ! [A: $tType,P2: A > $o,X: A,Xs2: coinductive_llist @ A] :
      ( ( ( P2 @ X )
       => ( ( coinductive_lfilter @ A @ P2 @ ( coinductive_LCons @ A @ X @ Xs2 ) )
          = ( coinductive_LCons @ A @ X @ ( coinductive_lfilter @ A @ P2 @ Xs2 ) ) ) )
      & ( ~ ( P2 @ X )
       => ( ( coinductive_lfilter @ A @ P2 @ ( coinductive_LCons @ A @ X @ Xs2 ) )
          = ( coinductive_lfilter @ A @ P2 @ Xs2 ) ) ) ) ).

% lfilter_LCons
thf(fact_217_lconcat__LCons,axiom,
    ! [B: $tType,Xs2: coinductive_llist @ B,Xss2: coinductive_llist @ ( coinductive_llist @ B )] :
      ( ( coinductive_lconcat @ B @ ( coinductive_LCons @ ( coinductive_llist @ B ) @ Xs2 @ Xss2 ) )
      = ( coinductive_lappend @ B @ Xs2 @ ( coinductive_lconcat @ B @ Xss2 ) ) ) ).

% lconcat_LCons
thf(fact_218_llast__LCons2,axiom,
    ! [A: $tType,X: A,Y3: A,Xs2: coinductive_llist @ A] :
      ( ( coinductive_llast @ A @ ( coinductive_LCons @ A @ X @ ( coinductive_LCons @ A @ Y3 @ Xs2 ) ) )
      = ( coinductive_llast @ A @ ( coinductive_LCons @ A @ Y3 @ Xs2 ) ) ) ).

% llast_LCons2
thf(fact_219_swap__comp__swap,axiom,
    ! [B: $tType,A: $tType] :
      ( ( comp @ ( product_prod @ B @ A ) @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) @ ( product_swap @ B @ A ) @ ( product_swap @ A @ B ) )
      = ( id @ ( product_prod @ A @ B ) ) ) ).

% swap_comp_swap
thf(fact_220_tllist__of__llist__LCons,axiom,
    ! [B: $tType,A: $tType,B3: B,Xa: A,X: coinductive_llist @ A] :
      ( ( tLList1672613558_llist @ B @ A @ B3 @ ( coinductive_LCons @ A @ Xa @ X ) )
      = ( tLList1992840728_TCons @ A @ B @ Xa @ ( tLList1672613558_llist @ B @ A @ B3 @ X ) ) ) ).

% tllist_of_llist_LCons
thf(fact_221_llist__of__tllist__TCons,axiom,
    ! [B: $tType,A: $tType,Xa: A,X: tLList446370796tllist @ A @ B] :
      ( ( tLList798109904tllist @ A @ B @ ( tLList1992840728_TCons @ A @ B @ Xa @ X ) )
      = ( coinductive_LCons @ A @ Xa @ ( tLList798109904tllist @ A @ B @ X ) ) ) ).

% llist_of_tllist_TCons
thf(fact_222_llast__lappend__LCons,axiom,
    ! [A: $tType,Xs2: coinductive_llist @ A,Y3: A,Ys2: coinductive_llist @ A] :
      ( ( coinductive_lfinite @ A @ Xs2 )
     => ( ( coinductive_llast @ A @ ( coinductive_lappend @ A @ Xs2 @ ( coinductive_LCons @ A @ Y3 @ Ys2 ) ) )
        = ( coinductive_llast @ A @ ( coinductive_LCons @ A @ Y3 @ Ys2 ) ) ) ) ).

% llast_lappend_LCons
thf(fact_223_llist_Orel__intros_I2_J,axiom,
    ! [A: $tType,B: $tType,R: A > B > $o,X21: A,Y21: B,X222: coinductive_llist @ A,Y22: coinductive_llist @ B] :
      ( ( R @ X21 @ Y21 )
     => ( ( coindu1486289336t_all2 @ A @ B @ R @ X222 @ Y22 )
       => ( coindu1486289336t_all2 @ A @ B @ R @ ( coinductive_LCons @ A @ X21 @ X222 ) @ ( coinductive_LCons @ B @ Y21 @ Y22 ) ) ) ) ).

% llist.rel_intros(2)
thf(fact_224_llist__all2__LCons1,axiom,
    ! [A: $tType,B: $tType,P2: A > B > $o,X: A,Xs2: coinductive_llist @ A,Ys2: coinductive_llist @ B] :
      ( ( coindu1486289336t_all2 @ A @ B @ P2 @ ( coinductive_LCons @ A @ X @ Xs2 ) @ Ys2 )
      = ( ? [Y4: B,Ys4: coinductive_llist @ B] :
            ( ( Ys2
              = ( coinductive_LCons @ B @ Y4 @ Ys4 ) )
            & ( P2 @ X @ Y4 )
            & ( coindu1486289336t_all2 @ A @ B @ P2 @ Xs2 @ Ys4 ) ) ) ) ).

% llist_all2_LCons1
thf(fact_225_llist__all2__LCons2,axiom,
    ! [B: $tType,A: $tType,P2: A > B > $o,Xs2: coinductive_llist @ A,Y3: B,Ys2: coinductive_llist @ B] :
      ( ( coindu1486289336t_all2 @ A @ B @ P2 @ Xs2 @ ( coinductive_LCons @ B @ Y3 @ Ys2 ) )
      = ( ? [X3: A,Xs4: coinductive_llist @ A] :
            ( ( Xs2
              = ( coinductive_LCons @ A @ X3 @ Xs4 ) )
            & ( P2 @ X3 @ Y3 )
            & ( coindu1486289336t_all2 @ A @ B @ P2 @ Xs4 @ Ys2 ) ) ) ) ).

% llist_all2_LCons2
thf(fact_226_tllist_Ocorec__sel_I1_J,axiom,
    ! [Aa: $tType,A: $tType,E: $tType,P: E > $o,A3: E,G1: E > A,G21: E > Aa,Q222: E > $o,G221: E > ( tLList446370796tllist @ Aa @ A ),G222: E > E] :
      ( ( P @ A3 )
     => ( ( tLList2110128105rminal @ Aa @ A @ ( tLList1614408749tllist @ E @ A @ Aa @ P @ G1 @ G21 @ Q222 @ G221 @ G222 @ A3 ) )
        = ( G1 @ A3 ) ) ) ).

% tllist.corec_sel(1)
thf(fact_227_tllist_Ocorec_I2_J,axiom,
    ! [B: $tType,A: $tType,E: $tType,P: E > $o,A3: E,G1: E > B,G21: E > A,Q222: E > $o,G221: E > ( tLList446370796tllist @ A @ B ),G222: E > E] :
      ( ~ ( P @ A3 )
     => ( ( tLList1614408749tllist @ E @ B @ A @ P @ G1 @ G21 @ Q222 @ G221 @ G222 @ A3 )
        = ( tLList1992840728_TCons @ A @ B @ ( G21 @ A3 ) @ ( if @ ( tLList446370796tllist @ A @ B ) @ ( Q222 @ A3 ) @ ( G221 @ A3 ) @ ( tLList1614408749tllist @ E @ B @ A @ P @ G1 @ G21 @ Q222 @ G221 @ G222 @ ( G222 @ A3 ) ) ) ) ) ) ).

% tllist.corec(2)
thf(fact_228_lfinite__LConsI,axiom,
    ! [A: $tType,Xs2: coinductive_llist @ A,X: A] :
      ( ( coinductive_lfinite @ A @ Xs2 )
     => ( coinductive_lfinite @ A @ ( coinductive_LCons @ A @ X @ Xs2 ) ) ) ).

% lfinite_LConsI
thf(fact_229_lfilter__LCons__found,axiom,
    ! [A: $tType,P2: A > $o,X: A,Xs2: coinductive_llist @ A] :
      ( ( P2 @ X )
     => ( ( coinductive_lfilter @ A @ P2 @ ( coinductive_LCons @ A @ X @ Xs2 ) )
        = ( coinductive_LCons @ A @ X @ ( coinductive_lfilter @ A @ P2 @ Xs2 ) ) ) ) ).

% lfilter_LCons_found
thf(fact_230_lfilter__LCons__seek,axiom,
    ! [A: $tType,P: A > $o,X: A,L3: coinductive_llist @ A] :
      ( ~ ( P @ X )
     => ( ( coinductive_lfilter @ A @ P @ ( coinductive_LCons @ A @ X @ L3 ) )
        = ( coinductive_lfilter @ A @ P @ L3 ) ) ) ).

% lfilter_LCons_seek
thf(fact_231_tllist_Omap__o__corec,axiom,
    ! [A: $tType,B: $tType,C: $tType,D: $tType,E: $tType,F: A > C,Fa: B > D,G3: E > $o,Ga: E > B,Gb: E > A,Gc: E > $o,Gd: E > ( tLList446370796tllist @ A @ B ),Ge: E > E] :
      ( ( comp @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ C @ D ) @ E @ ( tLList1669959861e_tmap @ A @ C @ B @ D @ F @ Fa ) @ ( tLList1614408749tllist @ E @ B @ A @ G3 @ Ga @ Gb @ Gc @ Gd @ Ge ) )
      = ( tLList1614408749tllist @ E @ D @ C @ G3 @ ( comp @ B @ D @ E @ Fa @ Ga ) @ ( comp @ A @ C @ E @ F @ Gb ) @ Gc @ ( comp @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ C @ D ) @ E @ ( tLList1669959861e_tmap @ A @ C @ B @ D @ F @ Fa ) @ Gd ) @ Ge ) ) ).

% tllist.map_o_corec
thf(fact_232_llist_Octr__transfer_I2_J,axiom,
    ! [A: $tType,B: $tType,R: A > B > $o] : ( bNF_rel_fun @ A @ B @ ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) @ ( ( coinductive_llist @ B ) > ( coinductive_llist @ B ) ) @ R @ ( bNF_rel_fun @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ ( coindu1486289336t_all2 @ A @ B @ R ) @ ( coindu1486289336t_all2 @ A @ B @ R ) ) @ ( coinductive_LCons @ A ) @ ( coinductive_LCons @ B ) ) ).

% llist.ctr_transfer(2)
thf(fact_233_LCons__transfer,axiom,
    ! [A: $tType,B: $tType,A7: A > B > $o] : ( bNF_rel_fun @ A @ B @ ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) @ ( ( coinductive_llist @ B ) > ( coinductive_llist @ B ) ) @ A7 @ ( bNF_rel_fun @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ ( coindu1486289336t_all2 @ A @ B @ A7 ) @ ( coindu1486289336t_all2 @ A @ B @ A7 ) ) @ ( coinductive_LCons @ A ) @ ( coinductive_LCons @ B ) ) ).

% LCons_transfer
thf(fact_234_tappend_Oabs__eq,axiom,
    ! [C: $tType,A: $tType,B: $tType,Xa: product_prod @ ( coinductive_llist @ A ) @ B,X: B > ( product_prod @ ( coinductive_llist @ A ) @ C )] :
      ( ( tLList192138471append @ A @ B @ C
        @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( tLList446370796tllist @ A @ B )
          @ ^ [Xs: coinductive_llist @ A,A4: B] : ( tLList1672613558_llist @ B @ A @ A4 @ Xs )
          @ Xa )
        @ ( comp @ B @ ( tLList446370796tllist @ A @ C ) @ B
          @ ( comp @ ( product_prod @ ( coinductive_llist @ A ) @ C ) @ ( tLList446370796tllist @ A @ C ) @ B
            @ ( product_case_prod @ ( coinductive_llist @ A ) @ C @ ( tLList446370796tllist @ A @ C )
              @ ^ [Xs: coinductive_llist @ A,A4: C] : ( tLList1672613558_llist @ C @ A @ A4 @ Xs ) )
            @ X )
          @ ( id @ B ) ) )
      = ( product_case_prod @ ( coinductive_llist @ A ) @ C @ ( tLList446370796tllist @ A @ C )
        @ ^ [Xs: coinductive_llist @ A,A4: C] : ( tLList1672613558_llist @ C @ A @ A4 @ Xs )
        @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( ( B > ( product_prod @ ( coinductive_llist @ A ) @ C ) ) > ( product_prod @ ( coinductive_llist @ A ) @ C ) )
          @ ^ [Xs: coinductive_llist @ A,B4: B,F4: B > ( product_prod @ ( coinductive_llist @ A ) @ C )] : ( product_apfst @ ( coinductive_llist @ A ) @ ( coinductive_llist @ A ) @ C @ ( coinductive_lappend @ A @ Xs ) @ ( F4 @ B4 ) )
          @ Xa
          @ X ) ) ) ).

% tappend.abs_eq
thf(fact_235_llist__corec__transfer,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,A7: A > B > $o,B7: C > D > $o] :
      ( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ ( ( A > C ) > ( A > $o ) > ( A > ( coinductive_llist @ C ) ) > ( A > A ) > A > ( coinductive_llist @ C ) ) @ ( ( B > D ) > ( B > $o ) > ( B > ( coinductive_llist @ D ) ) > ( B > B ) > B > ( coinductive_llist @ D ) )
      @ ( bNF_rel_fun @ A @ B @ $o @ $o @ A7
        @ ^ [Y7: $o,Z2: $o] : Y7 = Z2 )
      @ ( bNF_rel_fun @ ( A > C ) @ ( B > D ) @ ( ( A > $o ) > ( A > ( coinductive_llist @ C ) ) > ( A > A ) > A > ( coinductive_llist @ C ) ) @ ( ( B > $o ) > ( B > ( coinductive_llist @ D ) ) > ( B > B ) > B > ( coinductive_llist @ D ) ) @ ( bNF_rel_fun @ A @ B @ C @ D @ A7 @ B7 )
        @ ( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ ( ( A > ( coinductive_llist @ C ) ) > ( A > A ) > A > ( coinductive_llist @ C ) ) @ ( ( B > ( coinductive_llist @ D ) ) > ( B > B ) > B > ( coinductive_llist @ D ) )
          @ ( bNF_rel_fun @ A @ B @ $o @ $o @ A7
            @ ^ [Y7: $o,Z2: $o] : Y7 = Z2 )
          @ ( bNF_rel_fun @ ( A > ( coinductive_llist @ C ) ) @ ( B > ( coinductive_llist @ D ) ) @ ( ( A > A ) > A > ( coinductive_llist @ C ) ) @ ( ( B > B ) > B > ( coinductive_llist @ D ) ) @ ( bNF_rel_fun @ A @ B @ ( coinductive_llist @ C ) @ ( coinductive_llist @ D ) @ A7 @ ( coindu1486289336t_all2 @ C @ D @ B7 ) ) @ ( bNF_rel_fun @ ( A > A ) @ ( B > B ) @ ( A > ( coinductive_llist @ C ) ) @ ( B > ( coinductive_llist @ D ) ) @ ( bNF_rel_fun @ A @ B @ A @ B @ A7 @ A7 ) @ ( bNF_rel_fun @ A @ B @ ( coinductive_llist @ C ) @ ( coinductive_llist @ D ) @ A7 @ ( coindu1486289336t_all2 @ C @ D @ B7 ) ) ) ) ) )
      @ ( coindu1259883913_llist @ A @ C )
      @ ( coindu1259883913_llist @ B @ D ) ) ).

% llist_corec_transfer
thf(fact_236_llist_Ocorec__transfer,axiom,
    ! [C: $tType,A: $tType,B: $tType,D: $tType,S: C > D > $o,R: A > B > $o] :
      ( bNF_rel_fun @ ( C > $o ) @ ( D > $o ) @ ( ( C > A ) > ( C > $o ) > ( C > ( coinductive_llist @ A ) ) > ( C > C ) > C > ( coinductive_llist @ A ) ) @ ( ( D > B ) > ( D > $o ) > ( D > ( coinductive_llist @ B ) ) > ( D > D ) > D > ( coinductive_llist @ B ) )
      @ ( bNF_rel_fun @ C @ D @ $o @ $o @ S
        @ ^ [Y7: $o,Z2: $o] : Y7 = Z2 )
      @ ( bNF_rel_fun @ ( C > A ) @ ( D > B ) @ ( ( C > $o ) > ( C > ( coinductive_llist @ A ) ) > ( C > C ) > C > ( coinductive_llist @ A ) ) @ ( ( D > $o ) > ( D > ( coinductive_llist @ B ) ) > ( D > D ) > D > ( coinductive_llist @ B ) ) @ ( bNF_rel_fun @ C @ D @ A @ B @ S @ R )
        @ ( bNF_rel_fun @ ( C > $o ) @ ( D > $o ) @ ( ( C > ( coinductive_llist @ A ) ) > ( C > C ) > C > ( coinductive_llist @ A ) ) @ ( ( D > ( coinductive_llist @ B ) ) > ( D > D ) > D > ( coinductive_llist @ B ) )
          @ ( bNF_rel_fun @ C @ D @ $o @ $o @ S
            @ ^ [Y7: $o,Z2: $o] : Y7 = Z2 )
          @ ( bNF_rel_fun @ ( C > ( coinductive_llist @ A ) ) @ ( D > ( coinductive_llist @ B ) ) @ ( ( C > C ) > C > ( coinductive_llist @ A ) ) @ ( ( D > D ) > D > ( coinductive_llist @ B ) ) @ ( bNF_rel_fun @ C @ D @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ S @ ( coindu1486289336t_all2 @ A @ B @ R ) ) @ ( bNF_rel_fun @ ( C > C ) @ ( D > D ) @ ( C > ( coinductive_llist @ A ) ) @ ( D > ( coinductive_llist @ B ) ) @ ( bNF_rel_fun @ C @ D @ C @ D @ S @ S ) @ ( bNF_rel_fun @ C @ D @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ S @ ( coindu1486289336t_all2 @ A @ B @ R ) ) ) ) ) )
      @ ( coindu1259883913_llist @ C @ A )
      @ ( coindu1259883913_llist @ D @ B ) ) ).

% llist.corec_transfer
thf(fact_237_llist_Ocorec_I2_J,axiom,
    ! [A: $tType,C: $tType,P: C > $o,A3: C,G21: C > A,Q222: C > $o,G221: C > ( coinductive_llist @ A ),G222: C > C] :
      ( ~ ( P @ A3 )
     => ( ( coindu1259883913_llist @ C @ A @ P @ G21 @ Q222 @ G221 @ G222 @ A3 )
        = ( coinductive_LCons @ A @ ( G21 @ A3 ) @ ( if @ ( coinductive_llist @ A ) @ ( Q222 @ A3 ) @ ( G221 @ A3 ) @ ( coindu1259883913_llist @ C @ A @ P @ G21 @ Q222 @ G221 @ G222 @ ( G222 @ A3 ) ) ) ) ) ) ).

% llist.corec(2)
thf(fact_238_unfold__llist__transfer,axiom,
    ! [A: $tType,C: $tType,D: $tType,B: $tType,A7: A > B > $o,B7: C > D > $o] :
      ( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ ( ( A > C ) > ( A > A ) > A > ( coinductive_llist @ C ) ) @ ( ( B > D ) > ( B > B ) > B > ( coinductive_llist @ D ) )
      @ ( bNF_rel_fun @ A @ B @ $o @ $o @ A7
        @ ^ [Y7: $o,Z2: $o] : Y7 = Z2 )
      @ ( bNF_rel_fun @ ( A > C ) @ ( B > D ) @ ( ( A > A ) > A > ( coinductive_llist @ C ) ) @ ( ( B > B ) > B > ( coinductive_llist @ D ) ) @ ( bNF_rel_fun @ A @ B @ C @ D @ A7 @ B7 ) @ ( bNF_rel_fun @ ( A > A ) @ ( B > B ) @ ( A > ( coinductive_llist @ C ) ) @ ( B > ( coinductive_llist @ D ) ) @ ( bNF_rel_fun @ A @ B @ A @ B @ A7 @ A7 ) @ ( bNF_rel_fun @ A @ B @ ( coinductive_llist @ C ) @ ( coinductive_llist @ D ) @ A7 @ ( coindu1486289336t_all2 @ C @ D @ B7 ) ) ) )
      @ ( coindu1441602521_llist @ A @ C )
      @ ( coindu1441602521_llist @ B @ D ) ) ).

% unfold_llist_transfer
thf(fact_239_tdropn_Orsp,axiom,
    ! [B: $tType,A: $tType] :
      ( bNF_rel_fun @ nat @ nat @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) ) @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) )
      @ ^ [Y7: nat,Z2: nat] : Y7 = Z2
      @ ( bNF_rel_fun @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( product_prod @ ( coinductive_llist @ A ) @ B )
        @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > $o )
          @ ^ [Xs: coinductive_llist @ A,A4: B] :
              ( product_case_prod @ ( coinductive_llist @ A ) @ B @ $o
              @ ^ [Ys: coinductive_llist @ A,B4: B] :
                  ( ( Xs = Ys )
                  & ( ( coinductive_lfinite @ A @ Ys )
                   => ( A4 = B4 ) ) ) ) )
        @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > $o )
          @ ^ [Xs: coinductive_llist @ A,A4: B] :
              ( product_case_prod @ ( coinductive_llist @ A ) @ B @ $o
              @ ^ [Ys: coinductive_llist @ A,B4: B] :
                  ( ( Xs = Ys )
                  & ( ( coinductive_lfinite @ A @ Ys )
                   => ( A4 = B4 ) ) ) ) ) )
      @ ( comp @ ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) ) @ nat @ ( product_apfst @ ( coinductive_llist @ A ) @ ( coinductive_llist @ A ) @ B ) @ ( coinductive_ldropn @ A ) )
      @ ( comp @ ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) ) @ nat @ ( product_apfst @ ( coinductive_llist @ A ) @ ( coinductive_llist @ A ) @ B ) @ ( coinductive_ldropn @ A ) ) ) ).

% tdropn.rsp
thf(fact_240_lfinite__ldropn,axiom,
    ! [A: $tType,N2: nat,Xs2: coinductive_llist @ A] :
      ( ( coinductive_lfinite @ A @ ( coinductive_ldropn @ A @ N2 @ Xs2 ) )
      = ( coinductive_lfinite @ A @ Xs2 ) ) ).

% lfinite_ldropn
thf(fact_241_unfold__llist__eq__LCons,axiom,
    ! [A: $tType,B: $tType,IS_LNIL: B > $o,LHD: B > A,LTL: B > B,B3: B,X: A,Xs2: coinductive_llist @ A] :
      ( ( ( coindu1441602521_llist @ B @ A @ IS_LNIL @ LHD @ LTL @ B3 )
        = ( coinductive_LCons @ A @ X @ Xs2 ) )
      = ( ~ ( IS_LNIL @ B3 )
        & ( X
          = ( LHD @ B3 ) )
        & ( Xs2
          = ( coindu1441602521_llist @ B @ A @ IS_LNIL @ LHD @ LTL @ ( LTL @ B3 ) ) ) ) ) ).

% unfold_llist_eq_LCons
thf(fact_242_unfold__llist__ltl__unroll,axiom,
    ! [A: $tType,B: $tType,IS_LNIL: B > $o,LHD: B > A,LTL: B > B,B3: B] :
      ( ( coindu1441602521_llist @ B @ A @ IS_LNIL @ LHD @ LTL @ ( LTL @ B3 ) )
      = ( coindu1441602521_llist @ B @ A @ ( comp @ B @ $o @ B @ IS_LNIL @ LTL ) @ ( comp @ B @ A @ B @ LHD @ LTL ) @ LTL @ B3 ) ) ).

% unfold_llist_ltl_unroll
thf(fact_243_unfold__llist_Octr_I2_J,axiom,
    ! [B: $tType,A: $tType,P: A > $o,A3: A,G21: A > B,G223: A > A] :
      ( ~ ( P @ A3 )
     => ( ( coindu1441602521_llist @ A @ B @ P @ G21 @ G223 @ A3 )
        = ( coinductive_LCons @ B @ ( G21 @ A3 ) @ ( coindu1441602521_llist @ A @ B @ P @ G21 @ G223 @ ( G223 @ A3 ) ) ) ) ) ).

% unfold_llist.ctr(2)
thf(fact_244_ldropn__transfer,axiom,
    ! [A: $tType,B: $tType,A7: A > B > $o] :
      ( bNF_rel_fun @ nat @ nat @ ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) @ ( ( coinductive_llist @ B ) > ( coinductive_llist @ B ) )
      @ ^ [Y7: nat,Z2: nat] : Y7 = Z2
      @ ( bNF_rel_fun @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ ( coindu1486289336t_all2 @ A @ B @ A7 ) @ ( coindu1486289336t_all2 @ A @ B @ A7 ) )
      @ ( coinductive_ldropn @ A )
      @ ( coinductive_ldropn @ B ) ) ).

% ldropn_transfer
thf(fact_245_corec__llist__never__stop,axiom,
    ! [A: $tType,B: $tType,IS_LNIL: B > $o,LHD: B > A,MORE: B > ( coinductive_llist @ A ),LTL: B > B,X: B] :
      ( ( coindu1259883913_llist @ B @ A @ IS_LNIL @ LHD
        @ ^ [Uu: B] : $false
        @ MORE
        @ LTL
        @ X )
      = ( coindu1441602521_llist @ B @ A @ IS_LNIL @ LHD @ LTL @ X ) ) ).

% corec_llist_never_stop
thf(fact_246_llist__all2__ldropnI,axiom,
    ! [A: $tType,B: $tType,P2: A > B > $o,Xs2: coinductive_llist @ A,Ys2: coinductive_llist @ B,N2: nat] :
      ( ( coindu1486289336t_all2 @ A @ B @ P2 @ Xs2 @ Ys2 )
     => ( coindu1486289336t_all2 @ A @ B @ P2 @ ( coinductive_ldropn @ A @ N2 @ Xs2 ) @ ( coinductive_ldropn @ B @ N2 @ Ys2 ) ) ) ).

% llist_all2_ldropnI
thf(fact_247_tdropn__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( tLList1881248882tdropn @ A @ B )
      = ( map_fun @ nat @ nat @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) ) @ ( ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ A @ B ) ) @ ( id @ nat )
        @ ( map_fun @ ( tLList446370796tllist @ A @ B ) @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( tLList446370796tllist @ A @ B )
          @ ^ [Ys: tLList446370796tllist @ A @ B] : ( product_Pair @ ( coinductive_llist @ A ) @ B @ ( tLList798109904tllist @ A @ B @ Ys ) @ ( tLList2110128105rminal @ A @ B @ Ys ) )
          @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( tLList446370796tllist @ A @ B )
            @ ^ [Xs: coinductive_llist @ A,A4: B] : ( tLList1672613558_llist @ B @ A @ A4 @ Xs ) ) )
        @ ( comp @ ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) ) @ nat @ ( product_apfst @ ( coinductive_llist @ A ) @ ( coinductive_llist @ A ) @ B ) @ ( coinductive_ldropn @ A ) ) ) ) ).

% tdropn_def
thf(fact_248_tdropn_Otransfer,axiom,
    ! [B: $tType,A: $tType] :
      ( bNF_rel_fun @ nat @ nat @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) ) @ ( ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ A @ B ) )
      @ ^ [Y7: nat,Z2: nat] : Y7 = Z2
      @ ( bNF_rel_fun @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( tLList446370796tllist @ A @ B ) @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( tLList446370796tllist @ A @ B )
        @ ( tLList1832236142tllist @ A @ A @ B @ B
          @ ^ [Y7: A,Z2: A] : Y7 = Z2
          @ ^ [Y7: B,Z2: B] : Y7 = Z2 )
        @ ( tLList1832236142tllist @ A @ A @ B @ B
          @ ^ [Y7: A,Z2: A] : Y7 = Z2
          @ ^ [Y7: B,Z2: B] : Y7 = Z2 ) )
      @ ( comp @ ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > ( product_prod @ ( coinductive_llist @ A ) @ B ) ) @ nat @ ( product_apfst @ ( coinductive_llist @ A ) @ ( coinductive_llist @ A ) @ B ) @ ( coinductive_ldropn @ A ) )
      @ ( tLList1881248882tdropn @ A @ B ) ) ).

% tdropn.transfer
thf(fact_249_conj__comp__iff,axiom,
    ! [B: $tType,A: $tType,P2: B > $o,Q: B > $o,G3: A > B] :
      ( ( comp @ B @ $o @ A
        @ ^ [X3: B] :
            ( ( P2 @ X3 )
            & ( Q @ X3 ) )
        @ G3 )
      = ( ^ [X3: A] :
            ( ( comp @ B @ $o @ A @ P2 @ G3 @ X3 )
            & ( comp @ B @ $o @ A @ Q @ G3 @ X3 ) ) ) ) ).

% conj_comp_iff
thf(fact_250_tdropn_Oabs__eq,axiom,
    ! [B: $tType,A: $tType,Xa: nat,X: product_prod @ ( coinductive_llist @ A ) @ B] :
      ( ( tLList1881248882tdropn @ A @ B @ Xa
        @ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( tLList446370796tllist @ A @ B )
          @ ^ [Xs: coinductive_llist @ A,A4: B] : ( tLList1672613558_llist @ B @ A @ A4 @ Xs )
          @ X ) )
      = ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( tLList446370796tllist @ A @ B )
        @ ^ [Xs: coinductive_llist @ A,A4: B] : ( tLList1672613558_llist @ B @ A @ A4 @ Xs )
        @ ( product_apfst @ ( coinductive_llist @ A ) @ ( coinductive_llist @ A ) @ B @ ( coinductive_ldropn @ A @ Xa ) @ X ) ) ) ).

% tdropn.abs_eq
thf(fact_251_ldropWhile__transfer,axiom,
    ! [A: $tType,B: $tType,A7: A > B > $o] :
      ( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) @ ( ( coinductive_llist @ B ) > ( coinductive_llist @ B ) )
      @ ( bNF_rel_fun @ A @ B @ $o @ $o @ A7
        @ ^ [Y7: $o,Z2: $o] : Y7 = Z2 )
      @ ( bNF_rel_fun @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ ( coindu1486289336t_all2 @ A @ B @ A7 ) @ ( coindu1486289336t_all2 @ A @ B @ A7 ) )
      @ ( coindu218763757pWhile @ A )
      @ ( coindu218763757pWhile @ B ) ) ).

% ldropWhile_transfer
thf(fact_252_tllist_Opred__transfer,axiom,
    ! [A: $tType,B: $tType,D: $tType,C: $tType,R1: A > C > $o,R22: B > D > $o] :
      ( bNF_rel_fun @ ( A > $o ) @ ( C > $o ) @ ( ( B > $o ) > ( tLList446370796tllist @ A @ B ) > $o ) @ ( ( D > $o ) > ( tLList446370796tllist @ C @ D ) > $o )
      @ ( bNF_rel_fun @ A @ C @ $o @ $o @ R1
        @ ^ [Y7: $o,Z2: $o] : Y7 = Z2 )
      @ ( bNF_rel_fun @ ( B > $o ) @ ( D > $o ) @ ( ( tLList446370796tllist @ A @ B ) > $o ) @ ( ( tLList446370796tllist @ C @ D ) > $o )
        @ ( bNF_rel_fun @ B @ D @ $o @ $o @ R22
          @ ^ [Y7: $o,Z2: $o] : Y7 = Z2 )
        @ ( bNF_rel_fun @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ C @ D ) @ $o @ $o @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R22 )
          @ ^ [Y7: $o,Z2: $o] : Y7 = Z2 ) )
      @ ( tLList11265572tllist @ A @ B )
      @ ( tLList11265572tllist @ C @ D ) ) ).

% tllist.pred_transfer
thf(fact_253_ldropWhile__LCons,axiom,
    ! [A: $tType,P2: A > $o,X: A,Xs2: coinductive_llist @ A] :
      ( ( ( P2 @ X )
       => ( ( coindu218763757pWhile @ A @ P2 @ ( coinductive_LCons @ A @ X @ Xs2 ) )
          = ( coindu218763757pWhile @ A @ P2 @ Xs2 ) ) )
      & ( ~ ( P2 @ X )
       => ( ( coindu218763757pWhile @ A @ P2 @ ( coinductive_LCons @ A @ X @ Xs2 ) )
          = ( coinductive_LCons @ A @ X @ Xs2 ) ) ) ) ).

% ldropWhile_LCons
thf(fact_254_tllist_Opred__inject_I2_J,axiom,
    ! [B: $tType,A: $tType,P1: A > $o,P22: B > $o,A3: A,Aa2: tLList446370796tllist @ A @ B] :
      ( ( tLList11265572tllist @ A @ B @ P1 @ P22 @ ( tLList1992840728_TCons @ A @ B @ A3 @ Aa2 ) )
      = ( ( P1 @ A3 )
        & ( tLList11265572tllist @ A @ B @ P1 @ P22 @ Aa2 ) ) ) ).

% tllist.pred_inject(2)
thf(fact_255_ldropWhile__K__False,axiom,
    ! [A: $tType] :
      ( ( coindu218763757pWhile @ A
        @ ^ [Uu: A] : $false )
      = ( id @ ( coinductive_llist @ A ) ) ) ).

% ldropWhile_K_False

%----Helper facts (3)
thf(help_If_3_1_T,axiom,
    ! [P2: $o] :
      ( ( P2 = $true )
      | ( P2 = $false ) ) ).

thf(help_If_2_1_T,axiom,
    ! [A: $tType,X: A,Y3: A] :
      ( ( if @ A @ $false @ X @ Y3 )
      = Y3 ) ).

thf(help_If_1_1_T,axiom,
    ! [A: $tType,X: A,Y3: A] :
      ( ( if @ A @ $true @ X @ Y3 )
      = X ) ).

%----Conjectures (2)
thf(conj_0,hypothesis,
    ( product_case_prod @ ( coinductive_llist @ a ) @ b @ ( ( product_prod @ ( coinductive_llist @ a ) @ b ) > $o )
    @ ^ [Xs: coinductive_llist @ a,A4: b] :
        ( product_case_prod @ ( coinductive_llist @ a ) @ b @ $o
        @ ^ [Ys: coinductive_llist @ a,B4: b] :
            ( ( Xs = Ys )
            & ( ( coinductive_lfinite @ a @ Ys )
             => ( A4 = B4 ) ) ) )
    @ prod1
    @ prod2 ) ).

thf(conj_1,conjecture,
    ( product_case_prod @ ( coinductive_llist @ a ) @ c @ ( ( product_prod @ ( coinductive_llist @ a ) @ c ) > $o )
    @ ^ [Xs: coinductive_llist @ a,A4: c] :
        ( product_case_prod @ ( coinductive_llist @ a ) @ c @ $o
        @ ^ [Ys: coinductive_llist @ a,B4: c] :
            ( ( Xs = Ys )
            & ( ( coinductive_lfinite @ a @ Ys )
             => ( A4 = B4 ) ) ) )
    @ ( product_case_prod @ ( coinductive_llist @ a ) @ b @ ( product_prod @ ( coinductive_llist @ a ) @ c )
      @ ^ [Xs: coinductive_llist @ a,A4: b] : ( product_Pair @ ( coinductive_llist @ a ) @ c @ Xs @ ( undefined @ c ) )
      @ prod1 )
    @ ( product_case_prod @ ( coinductive_llist @ a ) @ b @ ( product_prod @ ( coinductive_llist @ a ) @ c )
      @ ^ [Xs: coinductive_llist @ a,A4: b] : ( product_Pair @ ( coinductive_llist @ a ) @ c @ Xs @ ( undefined @ c ) )
      @ prod2 ) ) ).

%------------------------------------------------------------------------------